<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" lang="en">

<head>
  <link href='https://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css' /><title>aggregate &mdash; MongoDB Manual</title><link rel="shortcut icon" href="https://media.mongodb.org/favicon.ico" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="robots" content="index" />

  <meta name="release" content="4.2.5"/>
  <meta name="version" content="4.2"/>
  <meta name="DC.Source" content="https://github.com/mongodb/docs/blob/v4.2/source/reference/command/aggregate.txt"/>
  <meta property="og:image" content="http://s3.amazonaws.com/info-mongodb-com/_com_assets/cms/mongodb-for-giant-ideas-bbab5c3cf8.png">
  <meta property="og:image:secure_url" content="https://webassets.mongodb.com/_com_assets/cms/mongodb-for-giant-ideas-bbab5c3cf8.png">
      <link rel="canonical" href="https://docs.mongodb.com/manual/reference/command/aggregate" />
  
   <link rel="stylesheet" href="../../_static/mongodb-docs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/css/navbar.min.css" type="text/css" />
    
    <script type="text/javascript" src="../../_static/lib/jquery.min.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/lib/bootstrap.js"></script>
    <script type="text/javascript" src="../../_static/lib/jquery.cookie.js"></script>
    <script type="text/javascript" src="../../_static/controller.js"></script>
      <link rel="search" type="application/opensearchdescription+xml" href="https://docs.mongodb.com/osd.xml" title="MongoDB Help"/>
<link rel="author" title="About these documents" href="../../about.html" />
<!-- <link rel="index" title="Index" href="../../genindex.html" /> -->
<link rel="search" title="Search" href="../../search.html" />
<link rel="top" title="MongoDB Manual" href="../../index.html" />
<link rel="up" title="Aggregation Commands" href="nav-aggregation.html" />
<link rel="next" title="count" href="count.html" />
<link rel="prev" title="Aggregation Commands" href="nav-aggregation.html" /><script type='text/javascript'>
   var gptadslots=[];
   var googletag = googletag || {};
   googletag.cmd = googletag.cmd || [];
   (function(){ var gads = document.createElement('script');
      gads.async = true; gads.type = 'text/javascript';
      var useSSL = 'https:' == document.location.protocol;
      gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
      var node = document.getElementsByTagName('script')[0];
      node.parentNode.insertBefore(gads, node);
   })();
</script>

<script type="text/javascript">
   googletag.cmd.push(function() {

      var pathname = location.href;
      
      if ( (pathname.indexOf("auth") >= 0) || (pathname.indexOf("security") >= 0) ) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/security', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      } else if ( (pathname.indexOf("crud") >= 0) ||  (pathname.indexOf("query") >= 0) || (pathname.indexOf("insert") >= 0) || (pathname.indexOf("update") >= 0) || (pathname.indexOf("remove") >= 0) || (pathname.indexOf("delete") >= 0) || (pathname.indexOf("aggregation") >= 0) ) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/crud', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      } else if (pathname.indexOf("shard") >= 0) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/sharding', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      } else if (pathname.indexOf("replica") >= 0) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/replication', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      } else if (pathname.indexOf("model") >= 0) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/data-modeling', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      } else if (pathname.indexOf("administration") >= 0) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/support', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      } else if (pathname.indexOf("install-mongodb-on-windows") >= 0) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/install-mongodb-on-windows', [160, 600], 'mongodb-docs-1').addService(googletag.pubads());
      } else if (pathname.indexOf("tutorial/getting-started") >= 0) {
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org/docs_server_gettingstarted', [160, 600], 'mongodb-docs-1').addService(googletag.pubads());
      } else {
         //Adslot 1 declaration
         gptadslots[1]= googletag.defineSlot('/40039723/docs.mongodb.org', [[160,600],[243,202],[293,244]],'mongodb-docs-1').addService(googletag.pubads());
      }
      googletag.pubads().enableSingleRequest();
      googletag.pubads().enableAsyncRendering();
      googletag.enableServices();
   });
</script></head>
<body data-project="manual" data-project-title="MongoDB Manual" data-branch="v4.2" data-enable-marian=1>
  <!-- Google Tag Manager -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-JQHP"
                    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push(
     {'gtm.start': new Date().getTime(),event:'gtm.js'}
   );var f=d.getElementsByTagName(s)[0],
   j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
   '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
   })(window,document,'script','dataLayer','GTM-JQHP');</script>
  <!-- End Google Tag Manager -->
<div id="navbar" data-navprops='{"links": [{"url": "https://docs.mongodb.com/manual/","text": "Server","active": true},{"url": "https://docs.mongodb.com/ecosystem/drivers/","text": "Drivers"},{"url": "https://docs.mongodb.com/cloud/","text": "Cloud"},{"url": "https://docs.mongodb.com/tools/","text": "Tools"},{"url": "https://docs.mongodb.com/guides/","text": "Guides"}]}'></div>
      <script>
        window.googleSearchCx = "017213726194841070573:WMX6838984"
	window.googleSearchPlaceholder = "Search Documentation"
        window.googleSearchResultsUrl = "http://docs.mongodb.com/manual/search/"
      </script>
    <script src="../../_static/navbar.min.js"></script>
  

  <div class="content" >

   <div id="left-column">
         <aside id="sidebar" class="sidebar">
             
  <div class="sphinxsidebar" id="sphinxsidebar">
    <div id="sphinxsidebarwrapper" class="sphinxsidebarwrapper"><a href="javascript:void(0)" class="closeNav" id="closeNav">Close &times;</a>


<h3>
  <a class="index-link" href="../../index.html">MongoDB Manual</a>
</h3>


    <div class="btn-group version-sidebar">
      <button type="button" class="version-button dropdown-toggle" data-toggle="dropdown">
        
        
        Version 4.2 (current)<span class="caret"></span>
      </button>
      <ul class="dropdown-menu" role="menu">
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="master">
              
              Version 4.4 (upcoming)
            </a>
          </li>
        
          
          <li class="active">
          
            <a href="#" data-path="manual">
              
              Version 4.2 (current)
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v4.0">
              
              Version 4.0
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v3.6">
              
              Version 3.6
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v3.4">
              
              Version 3.4
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v3.2">
              
              Version 3.2
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v3.0">
              
              Version 3.0
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v2.6">
              
              Version 2.6
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v2.4">
              
              Version 2.4
            </a>
          </li>
        
          
          <li>
          
            <a class="version-selector" href="#" data-path="v2.2">
              
              Version 2.2
            </a>
          </li>
        
      </ul>
    </div>


<ul class="current"><li class="toctree-l1"><a class="reference internal" href="../../introduction.html">Introduction</a><ul><li class="toctree-l2"><a class="reference internal" href="../../tutorial/getting-started.html">Getting Started</a></li><li class="toctree-l2"><a class="reference external" href="https://docs.atlas.mongodb.com/getting-started/">Create an Atlas Free Tier Cluster</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/databases-and-collections.html">Databases and Collections</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/views.html">Views</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/materialized-views.html">On-Demand Materialized Views</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/capped-collections.html">Capped Collections</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/document.html">Documents</a></li><li class="toctree-l2"><a class="reference internal" href="../bson-types.html">BSON Types</a><ul><li class="toctree-l3"><a class="reference internal" href="../bson-type-comparison-order.html">Comparison/Sort Order</a></li><li class="toctree-l3"><a class="reference internal" href="../mongodb-extended-json.html">MongoDB Extended JSON (v2)</a></li><li class="toctree-l3"><a class="reference internal" href="../mongodb-extended-json-v1.html">MongoDB Extended JSON (v1)</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../installation.html">Installation</a><ul><li class="toctree-l2"><a class="reference internal" href="../../administration/install-community.html">Install MongoDB Community Edition</a><ul><li class="toctree-l3"><a class="reference internal" href="../../administration/install-on-linux.html">Install on Linux</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-red-hat.html">Install on Red Hat</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-on-red-hat-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-ubuntu.html">Install on Ubuntu</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-on-ubuntu-tarball.html">Install using .tgz Tarball</a></li><li class="toctree-l5"><a class="reference internal" href="../installation-ubuntu-community-troubleshooting.html">Troubleshoot Ubuntu Installation</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-debian.html">Install on Debian</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-on-debian-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-suse.html">Install on SUSE</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-on-suse-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-amazon.html">Install on Amazon</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-on-amazon-tarball.html">Install using .tgz Tarball</a></li></ul></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/install-mongodb-on-os-x.html">Install on macOS</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-os-x-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/install-mongodb-on-windows.html">Install on Windows</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-on-windows-unattended.html">Install using msiexec.exe</a></li></ul></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/install-enterprise.html">Install MongoDB Enterprise</a><ul><li class="toctree-l3"><a class="reference internal" href="../../administration/install-enterprise-linux.html">Install on Linux</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-red-hat.html">Install on Red Hat</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-red-hat-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-ubuntu.html">Install on Ubuntu</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-ubuntu-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-debian.html">Install on Debian</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-debian-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-suse.html">Install on SUSE</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-suse-tarball.html">Install using .tgz Tarball</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-amazon.html">Install on Amazon</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-amazon-tarball.html">Install using .tgz Tarball</a></li></ul></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-os-x.html">Install on macOS</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-windows.html">Install on Windows</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-on-windows-unattended.html">Install using msiexec.exe</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/install-mongodb-enterprise-with-docker.html">Install with Docker</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/upgrade-community-to-enterprise.html">Upgrade MongoDB Community to MongoDB Enterprise</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/upgrade-to-enterprise-standalone.html">Upgrade to MongoDB Enterprise (Standalone)</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/upgrade-to-enterprise-replica-set.html">Upgrade to MongoDB Enterprise (Replica Set)</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/upgrade-to-enterprise-sharded-cluster.html">Upgrade to MongoDB Enterprise (Sharded Cluster)</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/verify-mongodb-packages.html">Verify Integrity of MongoDB Packages</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../mongo.html">The <code class="docutils literal"><span class="pre">mongo</span></code> Shell</a><ul><li class="toctree-l2"><a class="reference internal" href="../../tutorial/configure-mongo-shell.html">Configure the <code class="docutils literal"><span class="pre">mongo</span></code> Shell</a></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/access-mongo-shell-help.html">Access the <code class="docutils literal"><span class="pre">mongo</span></code> Shell Help</a></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/write-scripts-for-the-mongo-shell.html">Write Scripts for the <code class="docutils literal"><span class="pre">mongo</span></code> Shell</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/shell-types.html">Data Types in the <code class="docutils literal"><span class="pre">mongo</span></code> Shell</a></li><li class="toctree-l2"><a class="reference internal" href="../mongo-shell.html"><code class="docutils literal"><span class="pre">mongo</span></code> Shell Quick Reference</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../crud.html">MongoDB CRUD Operations</a><ul><li class="toctree-l2"><a class="reference internal" href="../../tutorial/insert-documents.html">Insert Documents</a><ul><li class="toctree-l3"><a class="reference internal" href="../insert-methods.html">Insert Methods</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/query-documents.html">Query Documents</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-embedded-documents.html">Query on Embedded/Nested Documents</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-arrays.html">Query an Array</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-array-of-documents.html">Query an Array of Embedded Documents</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/project-fields-from-query-results.html">Project Fields to Return from Query</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-for-null-fields.html">Query for Null or Missing Fields</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/iterate-a-cursor.html">Iterate a Cursor in the <code class="docutils literal"><span class="pre">mongo</span></code> Shell</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/update-documents.html">Update Documents</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/update-documents-with-aggregation-pipeline.html">Updates with Aggregation Pipeline</a></li><li class="toctree-l3"><a class="reference internal" href="../update-methods.html">Update Methods</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/remove-documents.html">Delete Documents</a><ul><li class="toctree-l3"><a class="reference internal" href="../delete-methods.html">Delete Methods</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/bulk-write-operations.html">Bulk Write Operations</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/retryable-writes.html">Retryable Writes</a></li><li class="toctree-l2"><a class="reference internal" href="../sql-comparison.html">SQL to MongoDB Mapping Chart</a></li><li class="toctree-l2"><a class="reference internal" href="../../text-search.html">Text Search</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/link-text-indexes.html">Text Indexes</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/text-search-operators.html">Text Search Operators</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/text-search-in-aggregation.html">Text Search in the Aggregation Pipeline</a></li><li class="toctree-l3"><a class="reference internal" href="../text-search-languages.html">Text Search Languages</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../geospatial-queries.html">Geospatial Queries</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/geospatial-tutorial.html">Find Restaurants with Geospatial Queries</a></li><li class="toctree-l3"><a class="reference internal" href="../geojson.html">GeoJSON Objects</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../read-concern.html">Read Isolation (Read Concern)</a><ul><li class="toctree-l3"><a class="reference internal" href="../read-concern-local.html">Read Concern <code class="docutils literal"><span class="pre">&quot;local&quot;</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../read-concern-available.html">Read Concern <code class="docutils literal"><span class="pre">&quot;available&quot;</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../read-concern-majority.html">Read Concern <code class="docutils literal"><span class="pre">&quot;majority&quot;</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../read-concern-linearizable.html">Read Concern <code class="docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../read-concern-snapshot.html">Read Concern <code class="docutils literal"><span class="pre">&quot;snapshot&quot;</span></code></a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../write-concern.html">Write Acknowledgement (Write Concern)</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/crud.html">MongoDB CRUD Concepts</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/write-operations-atomicity.html">Atomicity and Transactions</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/read-isolation-consistency-recency.html">Read Isolation, Consistency, and Recency</a><ul><li class="toctree-l4"><a class="reference internal" href="../../core/causal-consistency-read-write-concerns.html">Causal Consistency and Read and Write Concerns</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/distributed-queries.html">Distributed Queries</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/perform-findAndModify-linearizable-reads.html">Linearizable Reads via <code class="docutils literal"><span class="pre">findAndModify</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../../core/query-plans.html">Query Plans</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/query-optimization.html">Query Optimization</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/evaluate-operation-performance.html">Evaluate Performance of Current Operations</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/optimize-query-performance-with-indexes-and-projections.html">Optimize Query Performance</a></li><li class="toctree-l4"><a class="reference internal" href="../../core/write-performance.html">Write Operation Performance</a></li><li class="toctree-l4"><a class="reference internal" href="../explain-results.html">Explain Results</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/analyze-query-plan.html">Analyze Query Performance</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/tailable-cursors.html">Tailable Cursors</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../aggregation.html">Aggregation</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/aggregation-pipeline.html">Aggregation Pipeline</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/aggregation-pipeline-optimization.html">Aggregation Pipeline Optimization</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/aggregation-pipeline-limits.html">Aggregation Pipeline Limits</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/aggregation-pipeline-sharded-collections.html">Aggregation Pipeline and Sharded Collections</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/aggregation-zip-code-data-set.html">Example with ZIP Code Data</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/aggregation-with-user-preference-data.html">Example with User Preference Data</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/map-reduce.html">Map-Reduce</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/map-reduce-sharded-collections.html">Map-Reduce and Sharded Collections</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/map-reduce-concurrency.html">Map-Reduce Concurrency</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/map-reduce-examples.html">Map-Reduce Examples</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/perform-incremental-map-reduce.html">Perform Incremental Map-Reduce</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/troubleshoot-map-function.html">Troubleshoot the Map Function</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/troubleshoot-reduce-function.html">Troubleshoot the Reduce Function</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../aggregation.html">Aggregation Reference</a><ul><li class="toctree-l3"><a class="reference internal" href="../../meta/aggregation-quick-reference.html">Aggregation Pipeline Quick Reference</a></li><li class="toctree-l3"><a class="reference internal" href="../operator/aggregation/interface.html">Aggregation Commands</a></li><li class="toctree-l3"><a class="reference internal" href="../aggregation-commands-comparison.html">Aggregation Commands Comparison</a></li><li class="toctree-l3"><a class="reference internal" href="../aggregation-variables.html">Variables in Aggregation Expressions</a></li><li class="toctree-l3"><a class="reference internal" href="../sql-aggregation-comparison.html">SQL to Aggregation Mapping Chart</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../data-modeling.html">Data Models</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/data-modeling-introduction.html">Data Modeling Introduction</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/schema-validation.html">Schema Validation</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/data-models.html">Data Modeling Concepts</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/data-model-design.html">Data Model Design</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/data-model-operations.html">Operational Factors and Data Models</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../applications/data-models.html">Data Model Examples and Patterns</a><ul><li class="toctree-l3"><a class="reference internal" href="../../applications/data-models-relationships.html">Model Relationships Between Documents</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-embedded-one-to-one-relationships-between-documents.html">Model One-to-One Relationships with Embedded Documents</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-embedded-one-to-many-relationships-between-documents.html">Model One-to-Many Relationships with Embedded Documents</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-referenced-one-to-many-relationships-between-documents.html">Model One-to-Many Relationships with Document References</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../applications/data-models-tree-structures.html">Model Tree Structures</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-tree-structures-with-parent-references.html">Model Tree Structures with Parent References</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-tree-structures-with-child-references.html">Model Tree Structures with Child References</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-tree-structures-with-ancestors-array.html">Model Tree Structures with an Array of Ancestors</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-tree-structures-with-materialized-paths.html">Model Tree Structures with Materialized Paths</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-tree-structures-with-nested-sets.html">Model Tree Structures with Nested Sets</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../applications/data-models-applications.html">Model Specific Application Contexts</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-data-for-atomic-operations.html">Model Data for Atomic Operations</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-data-for-keyword-search.html">Model Data to Support Keyword Search</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-data-for-schema-versioning.html">Model Data for Schema Versioning</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-monetary-data.html">Model Monetary Data</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-time-data.html">Model Time Data</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/model-computed-data.html">Model Computed Data</a></li></ul></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../data-models.html">Data Model Reference</a><ul><li class="toctree-l3"><a class="reference internal" href="../database-references.html">Database References</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../core/transactions.html">Transactions</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/transactions-in-applications.html">Drivers API</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/transactions-production-consideration.html">Production Considerations</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/transactions-sharded-clusters.html">Production Considerations (Sharded Clusters)</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/transactions-operations.html">Transactions and Operations</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../indexes.html">Indexes</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/index-single.html">Single Field Indexes</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-compound.html">Compound Indexes</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-multikey.html">Multikey Indexes</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/multikey-index-bounds.html">Multikey Index Bounds</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-text.html">Text Indexes</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/specify-language-for-text-index.html">Specify a Language for Text Index</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/avoid-text-index-name-limit.html">Specify Name for <code class="docutils literal"><span class="pre">text</span></code> Index</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/control-results-of-text-search.html">Control Search Results with Weights</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/limit-number-of-items-scanned-for-text-search.html">Limit the Number of Entries Scanned</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-wildcard.html">Wildcard Indexes</a><ul><li class="toctree-l3"><a class="reference internal" href="../index-wildcard-restrictions.html">Wildcard Index Restrictions</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/2dsphere.html"><code class="docutils literal"><span class="pre">2dsphere</span></code> Indexes</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-a-2dsphere-index.html">Query a <code class="docutils literal"><span class="pre">2dsphere</span></code> Index</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/2d.html"><code class="docutils literal"><span class="pre">2d</span></code> Indexes</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/build-a-2d-index.html">Create a <code class="docutils literal"><span class="pre">2d</span></code> Index</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-a-2d-index.html">Query a <code class="docutils literal"><span class="pre">2d</span></code> Index</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/geospatial-indexes.html"><code class="docutils literal"><span class="pre">2d</span></code> Index Internals</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/calculate-distances-using-spherical-geometry-with-2d-geospatial-indexes.html">Calculate Distance Using Spherical Geometry</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/geohaystack.html"><code class="docutils literal"><span class="pre">geoHaystack</span></code> Indexes</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/build-a-geohaystack-index.html">Create a Haystack Index</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/query-a-geohaystack-index.html">Query a Haystack Index</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-hashed.html">Hashed Indexes</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-properties.html">Index Properties</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/index-ttl.html">TTL Indexes</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/expire-data.html">Expire Data from Collections by Setting TTL</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/index-unique.html">Unique Indexes</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/index-partial.html">Partial Indexes</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/index-case-insensitive.html">Case Insensitive Indexes</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/index-sparse.html">Sparse Indexes</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-creation.html">Index Builds on Populated Collections</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/build-indexes-on-replica-sets.html">Build Indexes on Replica Sets</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/build-indexes-on-sharded-clusters.html">Build Indexes on Sharded Clusters</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/index-intersection.html">Index Intersection</a></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/manage-indexes.html">Manage Indexes</a></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/measure-index-use.html">Measure Index Use</a></li><li class="toctree-l2"><a class="reference internal" href="../../applications/indexes.html">Indexing Strategies</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/create-indexes-to-support-queries.html">Create Indexes to Support Your Queries</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/sort-results-with-indexes.html">Use Indexes to Sort Query Results</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/ensure-indexes-fit-ram.html">Ensure Indexes Fit in RAM</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/create-queries-that-ensure-selectivity.html">Create Queries that Ensure Selectivity</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../indexes.html">Indexing Reference</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../security.html">Security</a><ul><li class="toctree-l2"><a class="reference internal" href="../../administration/security-checklist.html">Security Checklist</a></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/enable-authentication.html">Enable Access Control</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/authentication.html">Authentication</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/security-users.html">Users</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/create-users.html">Add Users</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/authentication-mechanisms.html">Authentication Mechanisms</a><ul><li class="toctree-l4"><a class="reference internal" href="../../core/security-scram.html">SCRAM</a></li><li class="toctree-l4"><a class="reference internal" href="../../core/security-x.509.html">x.509</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/configure-x509-client-authentication.html">Use x.509 Certificates to Authenticate Clients</a></li></ul></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/authentication-mechanisms-enterprise.html">Enterprise Authentication Mechanisms</a><ul><li class="toctree-l4"><a class="reference internal" href="../../core/kerberos.html">Kerberos Authentication</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/control-access-to-mongodb-with-kerberos-authentication.html">Configure MongoDB with Kerberos Authentication on Linux</a></li><li class="toctree-l5"><a class="reference internal" href="../../tutorial/control-access-to-mongodb-windows-with-kerberos-authentication.html">Configure MongoDB with Kerberos Authentication on Windows</a></li><li class="toctree-l5"><a class="reference internal" href="../../tutorial/troubleshoot-kerberos.html">Troubleshoot Kerberos Authentication</a></li><li class="toctree-l5"><a class="reference internal" href="../../tutorial/kerberos-auth-activedirectory-authz.html">Configure MongoDB with Kerberos Authentication and Active Directory Authorization</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../core/security-ldap.html">LDAP Proxy Authentication</a><ul><li class="toctree-l5"><a class="reference internal" href="../../tutorial/configure-ldap-sasl-activedirectory.html">Authenticate Using SASL and LDAP with ActiveDirectory</a></li><li class="toctree-l5"><a class="reference internal" href="../../tutorial/configure-ldap-sasl-openldap.html">Authenticate Using SASL and LDAP with OpenLDAP</a></li><li class="toctree-l5"><a class="reference internal" href="../../tutorial/authenticate-nativeldap-activedirectory.html">Authenticate and Authorize Users Using Active Directory via Native LDAP</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../../core/security-ldap-external.html">LDAP Authorization</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/security-internal-authentication.html">Internal/Membership Authentication</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/deploy-replica-set-with-keyfile-access-control.html">Deploy Replica Set With Keyfile Authentication</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/enforce-keyfile-access-control-in-existing-replica-set.html">Update Replica Set to Keyfile Authentication</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/enforce-keyfile-access-control-in-existing-replica-set-without-downtime.html">Update Replica Set to Keyfile Authentication (No Downtime)</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/rotate-key-replica-set.html">Rotate Keys for Replica Sets</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/deploy-sharded-cluster-with-keyfile-access-control.html">Deploy Sharded Cluster with Keyfile Authentication</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/enforce-keyfile-access-control-in-existing-sharded-cluster.html">Update Sharded Cluster to Keyfile Authentication</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/enforce-keyfile-access-control-in-existing-sharded-cluster-no-downtime.html">Update Sharded Cluster to Keyfile Authentication (No Downtime)</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/rotate-key-sharded-cluster.html">Rotate Keys for Sharded Clusters</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/configure-x509-member-authentication.html">Use x.509 Certificate for Membership Authentication</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/upgrade-keyfile-to-x509.html">Upgrade from Keyfile Authentication to x.509 Authentication</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/rotate-x509-membership-certificates.html">Rolling Update of x.509 Cluster Certificates that Contain New DN</a></li></ul></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/authorization.html">Role-Based Access Control</a><ul><li class="toctree-l3"><a class="reference internal" href="../built-in-roles.html">Built-In Roles</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/security-user-defined-roles.html">User-Defined Roles</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-users-and-roles.html">Manage Users and Roles</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/change-own-password-and-custom-data.html">Change Your Password and Custom Data</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/collection-level-access-control.html">Collection-Level Access Control</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/security-transport-encryption.html">TLS/SSL (Transport Encryption)</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-ssl.html">Configure <code class="docutils literal"><span class="pre">mongod</span></code> and <code class="docutils literal"><span class="pre">mongos</span></code> for TLS/SSL</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-ssl-clients.html">TLS/SSL Configuration for Clients</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/upgrade-cluster-to-ssl.html">Upgrade a Cluster to Use TLS/SSL</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-fips.html">Configure MongoDB for FIPS</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/security-encryption-at-rest.html">Encryption at Rest</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-encryption.html">Configure Encryption</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/rotate-encryption-key.html">Rotate Encryption Keys</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/security-client-side-encryption.html">Client-Side Field Level Encryption</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/security-automatic-client-side-encryption.html">Automatic Client-Side Field Level Encryption</a><ul><li class="toctree-l4"><a class="reference internal" href="../security-client-side-automatic-json-schema.html">Automatic Encryption Rules</a></li><li class="toctree-l4"><a class="reference internal" href="../security-client-side-query-aggregation-support.html">Read/Write Support with Automatic Field Level Encryption</a></li><li class="toctree-l4"><a class="reference internal" href="../security-client-side-encryption-appendix.html">Appendix</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/security-explicit-client-side-encryption.html">Explicit (Manual) Client-Side Field Level Encryption</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/security-client-side-encryption-key-management.html">Master Key and Data Encryption Key Management</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/manage-client-side-encryption-data-keys.html">Manage Data Encryption Keys</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../security-client-side-encryption-limitations.html">Limitations</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/auditing.html">Auditing</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-auditing.html">Configure Auditing</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-audit-filters.html">Configure Audit Filters</a></li><li class="toctree-l3"><a class="reference internal" href="../audit-message.html">System Event Audit Messages</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/security-hardening.html">Network and Configuration Hardening</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/security-mongodb-configuration.html">IP Binding</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-linux-iptables-firewall.html">Configure Linux <code class="docutils literal"><span class="pre">iptables</span></code> Firewall for MongoDB</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-windows-netsh-firewall.html">Configure Windows <code class="docutils literal"><span class="pre">netsh</span></code> Firewall for MongoDB</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/implement-field-level-redaction.html">Implement Field Level Redaction</a></li><li class="toctree-l2"><a class="reference internal" href="../security.html">Security Reference</a><ul><li class="toctree-l3"><a class="reference internal" href="../system-roles-collection.html"><code class="docutils literal"><span class="pre">system.roles</span></code> Collection</a></li><li class="toctree-l3"><a class="reference internal" href="../system-users-collection.html"><code class="docutils literal"><span class="pre">system.users</span></code> Collection</a></li><li class="toctree-l3"><a class="reference internal" href="../resource-document.html">Resource Document</a></li><li class="toctree-l3"><a class="reference internal" href="../privilege-actions.html">Privilege Actions</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/create-a-vulnerability-report.html">Create a Vulnerability Report</a></li><li class="toctree-l2"><a class="reference internal" href="../../appendix/security.html">Appendix</a><ul><li class="toctree-l3"><a class="reference internal" href="../../appendix/security/appendixA-openssl-ca.html">Appendix A - OpenSSL CA Certificate for Testing</a></li><li class="toctree-l3"><a class="reference internal" href="../../appendix/security/appendixB-openssl-server.html">Appendix B - OpenSSL Server Certificates for Testing</a></li><li class="toctree-l3"><a class="reference internal" href="../../appendix/security/appendixC-openssl-client.html">Appendix C - OpenSSL Client Certificates for Testing</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../changeStreams.html">Change Streams</a><ul><li class="toctree-l2"><a class="reference internal" href="../../administration/change-streams-production-recommendations.html">Change Streams Production Recommendations</a></li><li class="toctree-l2"><a class="reference internal" href="../change-events.html">Change Events</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../replication.html">Replication</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/replica-set-members.html">Replica Set Members</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-primary.html">Replica Set Primary</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-secondary.html">Replica Set Secondary Members</a><ul><li class="toctree-l4"><a class="reference internal" href="../../core/replica-set-priority-0-member.html">Priority 0 Replica Set Members</a></li><li class="toctree-l4"><a class="reference internal" href="../../core/replica-set-hidden-member.html">Hidden Replica Set Members</a></li><li class="toctree-l4"><a class="reference internal" href="../../core/replica-set-delayed-member.html">Delayed Replica Set Members</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-arbiter.html">Replica Set Arbiter</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/replica-set-oplog.html">Replica Set Oplog</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/replica-set-sync.html">Replica Set Data Synchronization</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/replica-set-architectures.html">Replica Set Deployment Architectures</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-architecture-three-members.html">Three Member Replica Sets</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-architecture-geographically-distributed.html">Replica Sets Distributed Across Two or More Data Centers</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/replica-set-high-availability.html">Replica Set High Availability</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-elections.html">Replica Set Elections</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-rollbacks.html">Rollbacks During Replica Set Failover</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../applications/replication.html">Replica Set Read and Write Semantics</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/replica-set-write-concern.html">Write Concern for Replica Sets</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/read-preference.html">Read Preference</a><ul><li class="toctree-l4"><a class="reference internal" href="../../core/read-preference-tags.html">Tag Sets</a></li><li class="toctree-l4"><a class="reference internal" href="../../core/read-preference-staleness.html">maxStalenessSeconds</a></li><li class="toctree-l4"><a class="reference internal" href="../../core/read-preference-use-cases.html">Read Preference Use Cases</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/read-preference-mechanics.html">Server Selection Algorithm</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/replica-set-deployment.html">Replica Set Deployment Tutorials</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/deploy-replica-set.html">Deploy a Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/deploy-replica-set-for-testing.html">Deploy a Replica Set for Testing and Development</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/deploy-geographically-distributed-replica-set.html">Deploy a Geographically Redundant Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/add-replica-set-arbiter.html">Add an Arbiter to Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/convert-standalone-to-replica-set.html">Convert a Standalone to a Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/expand-replica-set.html">Add Members to a Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/remove-replica-set-member.html">Remove Members from Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/replace-replica-set-member.html">Replace a Replica Set Member</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/replica-set-member-configuration.html">Member Configuration Tutorials</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/adjust-replica-set-member-priority.html">Adjust Priority for Replica Set Member</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-secondary-only-replica-set-member.html">Prevent Secondary from Becoming Primary</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-a-hidden-replica-set-member.html">Configure a Hidden Replica Set Member</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-a-delayed-replica-set-member.html">Configure a Delayed Replica Set Member</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-a-non-voting-replica-set-member.html">Configure Non-Voting Replica Set Member</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/convert-secondary-into-arbiter.html">Convert a Secondary to an Arbiter</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/replica-set-maintenance.html">Replica Set Maintenance Tutorials</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/change-oplog-size.html">Change the Size of the Oplog</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/perform-maintence-on-replica-set-members.html">Perform Maintenance on Replica Set Members</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/force-member-to-be-primary.html">Force a Member to Become Primary</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/resync-replica-set-member.html">Resync a Member of a Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-replica-set-tag-sets.html">Configure Replica Set Tag Sets</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/reconfigure-replica-set-with-unavailable-members.html">Reconfigure a Replica Set with Unavailable Members</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-chained-replication.html">Manage Chained Replication</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/change-hostnames-in-a-replica-set.html">Change Hostnames in a Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/configure-replica-set-secondary-sync-target.html">Configure a Secondary’s Sync Target</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../replication.html">Replication Reference</a><ul><li class="toctree-l3"><a class="reference internal" href="../replica-configuration.html">Replica Set Configuration</a></li><li class="toctree-l3"><a class="reference internal" href="../replica-set-protocol-versions.html">Replica Set Protocol Version</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/troubleshoot-replica-sets.html">Troubleshoot Replica Sets</a></li><li class="toctree-l3"><a class="reference internal" href="../local-database.html">The <code class="docutils literal"><span class="pre">local</span></code> Database</a></li><li class="toctree-l3"><a class="reference internal" href="../replica-states.html">Replica Set Member States</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../sharding.html">Sharding</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/sharded-cluster-components.html">Sharded Cluster Components</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/sharded-cluster-shards.html">Shards</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/sharded-cluster-config-servers.html">Config Servers (metadata)</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/sharded-cluster-query-router.html">Router (mongos)</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/sharding-shard-key.html">Shard Keys</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/hashed-sharding.html">Hashed Sharding</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/ranged-sharding.html">Ranged Sharding</a></li><li class="toctree-l2"><a class="reference internal" href="../../tutorial/deploy-shard-cluster.html">Deploy a Sharded Cluster</a></li><li class="toctree-l2"><a class="reference internal" href="../../core/zone-sharding.html">Zones</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-shard-zone.html">Manage Shard Zones</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/sharding-segmenting-data-by-location.html">Segmenting Data by Location</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/sharding-tiered-hardware-for-varying-slas.html">Tiered Hardware for Varying SLA or SLO</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/sharding-segmenting-shards.html">Segmenting Data by Application or Customer</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/sharding-high-availability-writes.html">Distributed Local Writes for Insert Only Workloads</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/sharding-data-partitioning.html">Data Partitioning with Chunks</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/create-chunks-in-sharded-cluster.html">Create Chunks in a Sharded Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/split-chunks-in-sharded-cluster.html">Split Chunks in a Sharded Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/merge-chunks-in-sharded-cluster.html">Merge Chunks in a Sharded Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/modify-chunk-size-in-sharded-cluster.html">Modify Chunk Size in a Sharded Cluster</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/sharding-balancer-administration.html">Balancer</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-sharded-cluster-balancer.html">Manage Sharded Cluster Balancer</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/migrate-chunks-in-sharded-cluster.html">Migrate Chunks in a Sharded Cluster</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/sharded-cluster-administration.html">Administration</a><ul><li class="toctree-l3"><a class="reference internal" href="../../administration/sharded-cluster-config-servers.html">Config Server Administration</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/replace-config-server.html">Replace a Config Server</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/view-sharded-cluster-configuration.html">View Cluster Configuration</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/restart-sharded-cluster.html">Restart a Sharded Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/migrate-sharded-cluster-to-new-hardware.html">Migrate a Sharded Cluster to Different Hardware</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/add-shards-to-shard-cluster.html">Add Shards to a Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/remove-shards-from-cluster.html">Remove Shards from an Existing Sharded Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/clear-jumbo-flag.html">Clear <code class="docutils literal"><span class="pre">jumbo</span></code> Flag</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/backup-sharded-cluster-metadata.html">Back Up Cluster Metadata</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/convert-sharded-cluster-to-replica-set.html">Convert Sharded Cluster to Replica Set</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/convert-replica-set-to-replicated-shard-cluster.html">Convert a Replica Set to a Sharded Cluster</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/convert-shard-standalone-to-shard-replica-set.html">Convert a Shard Standalone to a Shard Replica Set</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../sharding.html">Sharding Reference</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/sharded-cluster-requirements.html">Operational Restrictions</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/troubleshoot-sharded-clusters.html">Troubleshoot Sharded Clusters</a></li><li class="toctree-l3"><a class="reference internal" href="../config-database.html">Config Database</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../administration.html">Administration</a><ul><li class="toctree-l2"><a class="reference internal" href="../../administration/production-notes.html">Production Notes</a></li><li class="toctree-l2"><a class="reference internal" href="../../administration/production-checklist-operations.html">Operations Checklist</a></li><li class="toctree-l2"><a class="reference internal" href="../../administration/production-checklist-development.html">Development Checklist</a></li><li class="toctree-l2"><a class="reference internal" href="../../administration/analyzing-mongodb-performance.html">Performance</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-the-database-profiler.html">Database Profiler</a><ul><li class="toctree-l4"><a class="reference internal" href="../database-profiler.html">Database Profiler Output</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/transparent-huge-pages.html">Disable Transparent Huge Pages (THP)</a></li><li class="toctree-l3"><a class="reference internal" href="../ulimit.html">UNIX <code class="docutils literal"><span class="pre">ulimit</span></code> Settings</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/configuration-and-maintenance.html">Configuration and Maintenance</a><ul><li class="toctree-l3"><a class="reference internal" href="../../administration/configuration.html">Run-time Database Configuration</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/upgrade-revision.html">Upgrade to the Latest Revision of MongoDB</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-mongodb-processes.html">Manage <code class="docutils literal"><span class="pre">mongod</span></code> Processes</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/terminate-running-operations.html">Terminate Running Operations</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/rotate-log-files.html">Rotate Log Files</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../data-center-awareness.html">Data Center Awareness</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/workload-isolation.html">Workload Isolation in MongoDB Deployments</a></li><li class="toctree-l3"><a class="reference internal" href="../../core/zone-sharding.html">Zones</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/manage-shard-zone.html">Manage Shard Zones</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/sharding-segmenting-data-by-location.html">Segmenting Data by Location</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/sharding-tiered-hardware-for-varying-slas.html">Tiered Hardware for Varying SLA or SLO</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/sharding-segmenting-shards.html">Segmenting Data by Application or Customer</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/sharding-high-availability-writes.html">Distributed Local Writes for Insert Only Workloads</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-shard-zone.html">Manage Shard Zones</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/backups.html">MongoDB Backup Methods</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/backup-with-filesystem-snapshots.html">Back Up and Restore with Filesystem Snapshots</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/backup-and-restore-tools.html">Back Up and Restore with MongoDB Tools</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/restore-replica-set-from-backup.html">Restore a Replica Set from MongoDB Backups</a></li><li class="toctree-l3"><a class="reference internal" href="../../administration/backup-sharded-clusters.html">Backup and Restore Sharded Clusters</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/backup-sharded-cluster-with-filesystem-snapshots.html">Back Up a Sharded Cluster with File System Snapshots</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/backup-sharded-cluster-with-database-dumps.html">Back Up a Sharded Cluster with Database Dumps</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/schedule-backup-window-for-sharded-clusters.html">Schedule Backup Window for Sharded Clusters</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/restore-sharded-cluster.html">Restore a Sharded Cluster</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/recover-data-following-unexpected-shutdown.html">Recover a Standalone after an Unexpected Shutdown</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../administration/monitoring.html">Monitoring for MongoDB</a><ul><li class="toctree-l3"><a class="reference internal" href="../../administration/free-monitoring.html">Free Monitoring</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/monitor-with-snmp.html">Monitor MongoDB With SNMP on Linux</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/monitor-with-snmp-on-windows.html">Monitor MongoDB Windows with SNMP</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/troubleshoot-snmp.html">Troubleshoot SNMP</a></li></ul></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../storage.html">Storage</a><ul><li class="toctree-l2"><a class="reference internal" href="../../core/storage-engines.html">Storage Engines</a><ul><li class="toctree-l3"><a class="reference internal" href="../../core/wiredtiger.html">WiredTiger Storage Engine</a><ul><li class="toctree-l4"><a class="reference internal" href="../../tutorial/change-standalone-wiredtiger.html">Change Standalone to WiredTiger</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/change-replica-set-wiredtiger.html">Change Replica Set to WiredTiger</a></li><li class="toctree-l4"><a class="reference internal" href="../../tutorial/change-sharded-cluster-wiredtiger.html">Change Sharded Cluster to WiredTiger</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../core/inmemory.html">In-Memory Storage Engine</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/journaling.html">Journaling</a><ul><li class="toctree-l3"><a class="reference internal" href="../../tutorial/manage-journaling.html">Manage Journaling</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../core/gridfs.html">GridFS</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/storage.html">FAQ: MongoDB Storage</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../faq.html">Frequently Asked Questions</a><ul><li class="toctree-l2"><a class="reference internal" href="../../faq/fundamentals.html">FAQ: MongoDB Fundamentals</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/indexes.html">FAQ: Indexes</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/concurrency.html">FAQ: Concurrency</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/sharding.html">FAQ: Sharding with MongoDB</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/replica-sets.html">FAQ: Replication and Replica Sets</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/storage.html">FAQ: MongoDB Storage</a></li><li class="toctree-l2"><a class="reference internal" href="../../faq/diagnostics.html">FAQ: MongoDB Diagnostics</a></li></ul></li><li class="toctree-l1 current"><a class="reference internal" href="../../reference.html">Reference</a><ul class="current"><li class="toctree-l2"><a class="reference internal" href="../operator.html">Operators</a><ul><li class="toctree-l3"><a class="reference internal" href="../operator/query.html">Query and Projection Operators</a><ul><li class="toctree-l4"><a class="reference internal" href="../operator/query-comparison.html">Comparison Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/eq.html">$eq</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/gt.html">$gt</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/gte.html">$gte</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/in.html">$in</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/lt.html">$lt</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/lte.html">$lte</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/ne.html">$ne</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/nin.html">$nin</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query-logical.html">Logical Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/and.html">$and</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/not.html">$not</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/nor.html">$nor</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/or.html">$or</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query-element.html">Element Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/exists.html">$exists</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/type.html">$type</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query-evaluation.html">Evaluation Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/expr.html">$expr</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/jsonSchema.html">$jsonSchema</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/mod.html">$mod</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/regex.html">$regex</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/text.html">$text</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/where.html">$where</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query-geospatial.html">Geospatial Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/geoIntersects.html">$geoIntersects</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/geoWithin.html">$geoWithin</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/near.html">$near</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/nearSphere.html">$nearSphere</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/box.html">$box</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/center.html">$center</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/centerSphere.html">$centerSphere</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/geometry.html">$geometry</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/maxDistance.html">$maxDistance</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/minDistance.html">$minDistance</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/polygon.html">$polygon</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/uniqueDocs.html">$uniqueDocs</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query-array.html">Array Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/all.html">$all</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/elemMatch.html">$elemMatch (query)</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/size.html">$size</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query-bitwise.html">Bitwise Query Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/query/bitsAllClear.html">$bitsAllClear</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/bitsAllSet.html">$bitsAllSet</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/bitsAnyClear.html">$bitsAnyClear</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/query/bitsAnySet.html">$bitsAnySet</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/query/comment.html">$comment</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/projection.html">Projection Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/projection/positional.html">$ (projection)</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/projection/elemMatch.html">$elemMatch (projection)</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/projection/meta.html">$meta</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/projection/slice.html">$slice (projection)</a></li></ul></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../operator/update.html">Update Operators</a><ul><li class="toctree-l4"><a class="reference internal" href="../operator/update-field.html">Field Update Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/update/currentDate.html">$currentDate</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/inc.html">$inc</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/min.html">$min</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/max.html">$max</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/mul.html">$mul</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/rename.html">$rename</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/set.html">$set</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/setOnInsert.html">$setOnInsert</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/unset.html">$unset</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/update-array.html">Array Update Operators</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/update/positional.html">$ (update)</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/positional-all.html">$[]</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/positional-filtered.html">$[&lt;identifier&gt;]</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/addToSet.html">$addToSet</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/pop.html">$pop</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/pull.html">$pull</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/push.html">$push</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/pullAll.html">$pullAll</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/each.html">$each</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/position.html">$position</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/slice.html">$slice</a></li><li class="toctree-l5"><a class="reference internal" href="../operator/update/sort.html">$sort</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../operator/update-bitwise.html">Bitwise Update Operator</a><ul><li class="toctree-l5"><a class="reference internal" href="../operator/update/bit.html">$bit</a></li></ul></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../operator/aggregation-pipeline.html">Aggregation Pipeline Stages</a><ul><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/addFields.html">$addFields (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/bucket.html">$bucket (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/bucketAuto.html">$bucketAuto (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/collStats.html">$collStats (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/count.html">$count (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/currentOp.html">$currentOp (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/facet.html">$facet (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/geoNear.html">$geoNear (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/graphLookup.html">$graphLookup (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/group.html">$group (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/indexStats.html">$indexStats (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/limit.html">$limit (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/listLocalSessions.html">$listLocalSessions</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/listSessions.html">$listSessions</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/lookup.html">$lookup (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/match.html">$match (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/merge.html">$merge (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/out.html">$out (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/planCacheStats.html">$planCacheStats</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/project.html">$project (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/redact.html">$redact (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/replaceRoot.html">$replaceRoot (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/replaceWith.html">$replaceWith (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/sample.html">$sample (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/set.html">$set (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/skip.html">$skip (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/sort.html">$sort (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/sortByCount.html">$sortByCount (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/unset.html">$unset (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/unwind.html">$unwind (aggregation)</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../operator/aggregation.html">Aggregation Pipeline Operators</a><ul><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/abs.html">$abs (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/acos.html">$acos (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/acosh.html">$acosh (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/add.html">$add (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/addToSet.html">$addToSet (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/allElementsTrue.html">$allElementsTrue (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/and.html">$and (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/anyElementTrue.html">$anyElementTrue (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/arrayElemAt.html">$arrayElemAt (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/arrayToObject.html">$arrayToObject (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/asin.html">$asin (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/asinh.html">$asinh (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/atan.html">$atan (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/atan2.html">$atan2 (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/atanh.html">$atanh (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/avg.html">$avg (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/ceil.html">$ceil (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/cmp.html">$cmp (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/concat.html">$concat (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/concatArrays.html">$concatArrays (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/cond.html">$cond (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/convert.html">$convert (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/cos.html">$cos (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dateFromParts.html">$dateFromParts (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dateToParts.html">$dateToParts (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dateFromString.html">$dateFromString (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dateToString.html">$dateToString (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dayOfMonth.html">$dayOfMonth (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dayOfWeek.html">$dayOfWeek (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/dayOfYear.html">$dayOfYear (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/degreesToRadians.html">$degreesToRadians (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/divide.html">$divide (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/eq.html">$eq (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/exp.html">$exp (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/filter.html">$filter (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/first.html">$first (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/floor.html">$floor (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/gt.html">$gt (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/gte.html">$gte (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/hour.html">$hour (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/ifNull.html">$ifNull (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/in.html">$in (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/indexOfArray.html">$indexOfArray (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/indexOfBytes.html">$indexOfBytes (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/indexOfCP.html">$indexOfCP (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/isArray.html">$isArray (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/isoDayOfWeek.html">$isoDayOfWeek (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/isoWeek.html">$isoWeek (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/isoWeekYear.html">$isoWeekYear (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/last.html">$last (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/let.html">$let (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/literal.html">$literal (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/ln.html">$ln (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/log.html">$log (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/log10.html">$log10 (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/lt.html">$lt (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/lte.html">$lte (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/ltrim.html">$ltrim (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/map.html">$map (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/max.html">$max (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/mergeObjects.html">$mergeObjects (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/meta.html">$meta (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/min.html">$min (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/millisecond.html">$millisecond (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/minute.html">$minute (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/mod.html">$mod (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/month.html">$month (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/multiply.html">$multiply (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/ne.html">$ne (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/not.html">$not (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/objectToArray.html">$objectToArray (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/or.html">$or (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/pow.html">$pow (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/push.html">$push (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/radiansToDegrees.html">$radiansToDegrees (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/range.html">$range (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/reduce.html">$reduce (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/regexFind.html">$regexFind (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/regexFindAll.html">$regexFindAll (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/regexMatch.html">$regexMatch (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/reverseArray.html">$reverseArray (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/round.html">$round (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/rtrim.html">$rtrim (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/second.html">$second (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/setDifference.html">$setDifference (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/setEquals.html">$setEquals (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/setIntersection.html">$setIntersection (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/setIsSubset.html">$setIsSubset (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/setUnion.html">$setUnion (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/size.html">$size (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/sin.html">$sin (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/slice.html">$slice (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/split.html">$split (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/sqrt.html">$sqrt (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/stdDevPop.html">$stdDevPop (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/stdDevSamp.html">$stdDevSamp (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/strcasecmp.html">$strcasecmp (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/strLenBytes.html">$strLenBytes (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/strLenCP.html">$strLenCP (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/substr.html">$substr (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/substrBytes.html">$substrBytes (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/substrCP.html">$substrCP (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/subtract.html">$subtract (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/sum.html">$sum (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/switch.html">$switch (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/tan.html">$tan (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toBool.html">$toBool (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toDate.html">$toDate (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toDecimal.html">$toDecimal (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toDouble.html">$toDouble(aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toInt.html">$toInt (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toLong.html">$toLong (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toObjectId.html">$toObjectId (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toString.html">$toString (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toLower.html">$toLower (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/toUpper.html">$toUpper (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/trim.html">$trim (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/trunc.html">$trunc (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/type.html">$type (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/week.html">$week (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/year.html">$year (aggregation)</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/aggregation/zip.html">$zip (aggregation)</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../operator/query-modifier.html">Query Modifiers</a><ul><li class="toctree-l4"><a class="reference internal" href="../operator/meta/comment.html">$comment</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/explain.html">$explain</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/hint.html">$hint</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/max.html">$max</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/maxTimeMS.html">$maxTimeMS</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/min.html">$min</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/orderby.html">$orderby</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/query.html">$query</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/returnKey.html">$returnKey</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/showDiskLoc.html">$showDiskLoc</a></li><li class="toctree-l4"><a class="reference internal" href="../operator/meta/natural.html">$natural</a></li></ul></li></ul></li><li class="toctree-l2 current"><a class="reference internal" href="../command.html">Database Commands</a><ul class="current"><li class="toctree-l3 current"><a class="reference internal" href="nav-aggregation.html">Aggregation Commands</a><ul class="current"><li class="toctree-l4 current"><a class="reference internal current" href="">aggregate</a></li><li class="toctree-l4"><a class="reference internal" href="count.html">count</a></li><li class="toctree-l4"><a class="reference internal" href="distinct.html">distinct</a></li><li class="toctree-l4"><a class="reference internal" href="mapReduce.html">mapReduce</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-geospatial.html">Geospatial Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="geoSearch.html">geoSearch</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-crud.html">Query and Write Operation Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="delete.html">delete</a></li><li class="toctree-l4"><a class="reference internal" href="find.html">find</a></li><li class="toctree-l4"><a class="reference internal" href="findAndModify.html">findAndModify</a></li><li class="toctree-l4"><a class="reference internal" href="getLastError.html">getLastError</a></li><li class="toctree-l4"><a class="reference internal" href="getMore.html">getMore</a></li><li class="toctree-l4"><a class="reference internal" href="insert.html">insert</a></li><li class="toctree-l4"><a class="reference internal" href="resetError.html">resetError</a></li><li class="toctree-l4"><a class="reference internal" href="update.html">update</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-plan-cache.html">Query Plan Cache Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="planCacheClear.html">planCacheClear</a></li><li class="toctree-l4"><a class="reference internal" href="planCacheClearFilters.html">planCacheClearFilters</a></li><li class="toctree-l4"><a class="reference internal" href="planCacheListFilters.html">planCacheListFilters</a></li><li class="toctree-l4"><a class="reference internal" href="planCacheListPlans.html">planCacheListPlans</a></li><li class="toctree-l4"><a class="reference internal" href="planCacheListQueryShapes.html">planCacheListQueryShapes</a></li><li class="toctree-l4"><a class="reference internal" href="planCacheSetFilter.html">planCacheSetFilter</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-authentication.html">Authentication Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="authenticate.html">authenticate</a></li><li class="toctree-l4"><a class="reference internal" href="getnonce.html">getnonce</a></li><li class="toctree-l4"><a class="reference internal" href="logout.html">logout</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-user-management.html">User Management Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="createUser.html">createUser</a></li><li class="toctree-l4"><a class="reference internal" href="dropAllUsersFromDatabase.html">dropAllUsersFromDatabase</a></li><li class="toctree-l4"><a class="reference internal" href="dropUser.html">dropUser</a></li><li class="toctree-l4"><a class="reference internal" href="grantRolesToUser.html">grantRolesToUser</a></li><li class="toctree-l4"><a class="reference internal" href="revokeRolesFromUser.html">revokeRolesFromUser</a></li><li class="toctree-l4"><a class="reference internal" href="updateUser.html">updateUser</a></li><li class="toctree-l4"><a class="reference internal" href="usersInfo.html">usersInfo</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-role-management.html">Role Management Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="createRole.html">createRole</a></li><li class="toctree-l4"><a class="reference internal" href="dropRole.html">dropRole</a></li><li class="toctree-l4"><a class="reference internal" href="dropAllRolesFromDatabase.html">dropAllRolesFromDatabase</a></li><li class="toctree-l4"><a class="reference internal" href="grantPrivilegesToRole.html">grantPrivilegesToRole</a></li><li class="toctree-l4"><a class="reference internal" href="grantRolesToRole.html">grantRolesToRole</a></li><li class="toctree-l4"><a class="reference internal" href="invalidateUserCache.html">invalidateUserCache</a></li><li class="toctree-l4"><a class="reference internal" href="revokePrivilegesFromRole.html">revokePrivilegesFromRole</a></li><li class="toctree-l4"><a class="reference internal" href="revokeRolesFromRole.html">revokeRolesFromRole</a></li><li class="toctree-l4"><a class="reference internal" href="rolesInfo.html">rolesInfo</a></li><li class="toctree-l4"><a class="reference internal" href="updateRole.html">updateRole</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-replication.html">Replication Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="applyOps.html">applyOps</a></li><li class="toctree-l4"><a class="reference internal" href="isMaster.html">isMaster</a></li><li class="toctree-l4"><a class="reference internal" href="replSetAbortPrimaryCatchUp.html">replSetAbortPrimaryCatchUp</a></li><li class="toctree-l4"><a class="reference internal" href="replSetFreeze.html">replSetFreeze</a></li><li class="toctree-l4"><a class="reference internal" href="replSetGetConfig.html">replSetGetConfig</a></li><li class="toctree-l4"><a class="reference internal" href="replSetGetStatus.html">replSetGetStatus</a></li><li class="toctree-l4"><a class="reference internal" href="replSetInitiate.html">replSetInitiate</a></li><li class="toctree-l4"><a class="reference internal" href="replSetMaintenance.html">replSetMaintenance</a></li><li class="toctree-l4"><a class="reference internal" href="replSetReconfig.html">replSetReconfig</a></li><li class="toctree-l4"><a class="reference internal" href="replSetResizeOplog.html">replSetResizeOplog</a></li><li class="toctree-l4"><a class="reference internal" href="replSetStepDown.html">replSetStepDown</a></li><li class="toctree-l4"><a class="reference internal" href="replSetSyncFrom.html">replSetSyncFrom</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-sharding.html">Sharding Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="addShard.html">addShard</a></li><li class="toctree-l4"><a class="reference internal" href="addShardToZone.html">addShardToZone</a></li><li class="toctree-l4"><a class="reference internal" href="balancerStart.html">balancerStart</a></li><li class="toctree-l4"><a class="reference internal" href="balancerStatus.html">balancerStatus</a></li><li class="toctree-l4"><a class="reference internal" href="balancerStop.html">balancerStop</a></li><li class="toctree-l4"><a class="reference internal" href="checkShardingIndex.html">checkShardingIndex</a></li><li class="toctree-l4"><a class="reference internal" href="clearJumboFlag.html">clearJumboFlag</a></li><li class="toctree-l4"><a class="reference internal" href="cleanupOrphaned.html">cleanupOrphaned</a></li><li class="toctree-l4"><a class="reference internal" href="enableSharding.html">enableSharding</a></li><li class="toctree-l4"><a class="reference internal" href="flushRouterConfig.html">flushRouterConfig</a></li><li class="toctree-l4"><a class="reference internal" href="getShardMap.html">getShardMap</a></li><li class="toctree-l4"><a class="reference internal" href="getShardVersion.html">getShardVersion</a></li><li class="toctree-l4"><a class="reference internal" href="isdbgrid.html">isdbgrid</a></li><li class="toctree-l4"><a class="reference internal" href="listShards.html">listShards</a></li><li class="toctree-l4"><a class="reference internal" href="medianKey.html">medianKey</a></li><li class="toctree-l4"><a class="reference internal" href="moveChunk.html">moveChunk</a></li><li class="toctree-l4"><a class="reference internal" href="movePrimary.html">movePrimary</a></li><li class="toctree-l4"><a class="reference internal" href="mergeChunks.html">mergeChunks</a></li><li class="toctree-l4"><a class="reference internal" href="removeShard.html">removeShard</a></li><li class="toctree-l4"><a class="reference internal" href="removeShardFromZone.html">removeShardFromZone</a></li><li class="toctree-l4"><a class="reference internal" href="setShardVersion.html">setShardVersion</a></li><li class="toctree-l4"><a class="reference internal" href="shardCollection.html">shardCollection</a></li><li class="toctree-l4"><a class="reference internal" href="shardingState.html">shardingState</a></li><li class="toctree-l4"><a class="reference internal" href="split.html">split</a></li><li class="toctree-l4"><a class="reference internal" href="splitChunk.html">splitChunk</a></li><li class="toctree-l4"><a class="reference internal" href="splitVector.html">splitVector</a></li><li class="toctree-l4"><a class="reference internal" href="unsetSharding.html">unsetSharding</a></li><li class="toctree-l4"><a class="reference internal" href="updateZoneKeyRange.html">updateZoneKeyRange</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-sessions.html">Sessions Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="abortTransaction.html">abortTransaction</a></li><li class="toctree-l4"><a class="reference internal" href="commitTransaction.html">commitTransaction</a></li><li class="toctree-l4"><a class="reference internal" href="endSessions.html">endSessions</a></li><li class="toctree-l4"><a class="reference internal" href="killAllSessions.html">killAllSessions</a></li><li class="toctree-l4"><a class="reference internal" href="killAllSessionsByPattern.html">killAllSessionsByPattern</a></li><li class="toctree-l4"><a class="reference internal" href="killSessions.html">killSessions</a></li><li class="toctree-l4"><a class="reference internal" href="refreshSessions.html">refreshSessions</a></li><li class="toctree-l4"><a class="reference internal" href="startSession.html">startSession</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-administration.html">Administration Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="clean.html">clean</a></li><li class="toctree-l4"><a class="reference internal" href="cloneCollection.html">cloneCollection</a></li><li class="toctree-l4"><a class="reference internal" href="cloneCollectionAsCapped.html">cloneCollectionAsCapped</a></li><li class="toctree-l4"><a class="reference internal" href="collMod.html">collMod</a></li><li class="toctree-l4"><a class="reference internal" href="compact.html">compact</a></li><li class="toctree-l4"><a class="reference internal" href="connPoolSync.html">connPoolSync</a></li><li class="toctree-l4"><a class="reference internal" href="convertToCapped.html">convertToCapped</a></li><li class="toctree-l4"><a class="reference internal" href="create.html">create</a></li><li class="toctree-l4"><a class="reference internal" href="createIndexes.html">createIndexes</a></li><li class="toctree-l4"><a class="reference internal" href="currentOp.html">currentOp</a></li><li class="toctree-l4"><a class="reference internal" href="drop.html">drop</a></li><li class="toctree-l4"><a class="reference internal" href="dropDatabase.html">dropDatabase</a></li><li class="toctree-l4"><a class="reference internal" href="dropConnections.html">dropConnections</a></li><li class="toctree-l4"><a class="reference internal" href="dropIndexes.html">dropIndexes</a></li><li class="toctree-l4"><a class="reference internal" href="filemd5.html">filemd5</a></li><li class="toctree-l4"><a class="reference internal" href="fsync.html">fsync</a></li><li class="toctree-l4"><a class="reference internal" href="fsyncUnlock.html">fsyncUnlock</a></li><li class="toctree-l4"><a class="reference internal" href="getParameter.html">getParameter</a></li><li class="toctree-l4"><a class="reference internal" href="killCursors.html">killCursors</a></li><li class="toctree-l4"><a class="reference internal" href="killOp.html">killOp</a></li><li class="toctree-l4"><a class="reference internal" href="listCollections.html">listCollections</a></li><li class="toctree-l4"><a class="reference internal" href="listDatabases.html">listDatabases</a></li><li class="toctree-l4"><a class="reference internal" href="listIndexes.html">listIndexes</a></li><li class="toctree-l4"><a class="reference internal" href="logRotate.html">logRotate</a></li><li class="toctree-l4"><a class="reference internal" href="reIndex.html">reIndex</a></li><li class="toctree-l4"><a class="reference internal" href="renameCollection.html">renameCollection</a></li><li class="toctree-l4"><a class="reference internal" href="setFeatureCompatibilityVersion.html">setFeatureCompatibilityVersion</a></li><li class="toctree-l4"><a class="reference internal" href="setParameter.html">setParameter</a></li><li class="toctree-l4"><a class="reference internal" href="shutdown.html">shutdown</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-diagnostic.html">Diagnostic Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="availableQueryOptions.html">availableQueryOptions</a></li><li class="toctree-l4"><a class="reference internal" href="buildInfo.html">buildInfo</a></li><li class="toctree-l4"><a class="reference internal" href="collStats.html">collStats</a></li><li class="toctree-l4"><a class="reference internal" href="connPoolStats.html">connPoolStats</a></li><li class="toctree-l4"><a class="reference internal" href="connectionStatus.html">connectionStatus</a></li><li class="toctree-l4"><a class="reference internal" href="cursorInfo.html">cursorInfo</a></li><li class="toctree-l4"><a class="reference internal" href="dataSize.html">dataSize</a></li><li class="toctree-l4"><a class="reference internal" href="dbHash.html">dbHash</a></li><li class="toctree-l4"><a class="reference internal" href="dbStats.html">dbStats</a></li><li class="toctree-l4"><a class="reference internal" href="diagLogging.html">diagLogging</a></li><li class="toctree-l4"><a class="reference internal" href="driverOIDTest.html">driverOIDTest</a></li><li class="toctree-l4"><a class="reference internal" href="explain.html">explain</a></li><li class="toctree-l4"><a class="reference internal" href="features.html">features</a></li><li class="toctree-l4"><a class="reference internal" href="getCmdLineOpts.html">getCmdLineOpts</a></li><li class="toctree-l4"><a class="reference internal" href="getLog.html">getLog</a></li><li class="toctree-l4"><a class="reference internal" href="hostInfo.html">hostInfo</a></li><li class="toctree-l4"><a class="reference internal" href="isSelf.html">isSelf</a></li><li class="toctree-l4"><a class="reference internal" href="listCommands.html">listCommands</a></li><li class="toctree-l4"><a class="reference internal" href="netstat.html">netstat</a></li><li class="toctree-l4"><a class="reference internal" href="ping.html">ping</a></li><li class="toctree-l4"><a class="reference internal" href="profile.html">profile</a></li><li class="toctree-l4"><a class="reference internal" href="serverStatus.html">serverStatus</a></li><li class="toctree-l4"><a class="reference internal" href="shardConnPoolStats.html">shardConnPoolStats</a></li><li class="toctree-l4"><a class="reference internal" href="top.html">top</a></li><li class="toctree-l4"><a class="reference internal" href="validate.html">validate</a></li><li class="toctree-l4"><a class="reference internal" href="whatsmyuri.html">whatsmyuri</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-free-monitoring.html">Free Monitoring Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="getFreeMonitoringStatus.html">getFreeMonitoringStatus</a></li><li class="toctree-l4"><a class="reference internal" href="setFreeMonitoring.html">setFreeMonitoring</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="nav-auditing.html">System Events Auditing Commands</a><ul><li class="toctree-l4"><a class="reference internal" href="logApplicationMessage.html">logApplicationMessage</a></li></ul></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../method.html"><code class="docutils literal"><span class="pre">mongo</span></code> Shell Methods</a><ul><li class="toctree-l3"><a class="reference internal" href="../method/js-collection.html">Collection Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.aggregate.html">db.collection.aggregate()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.bulkWrite.html">db.collection.bulkWrite()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.copyTo.html">db.collection.copyTo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.count.html">db.collection.count()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.countDocuments.html">db.collection.countDocuments()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.estimatedDocumentCount.html">db.collection.estimatedDocumentCount()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.createIndex.html">db.collection.createIndex()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.createIndexes.html">db.collection.createIndexes()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.dataSize.html">db.collection.dataSize()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.deleteOne.html">db.collection.deleteOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.deleteMany.html">db.collection.deleteMany()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.distinct.html">db.collection.distinct()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.drop.html">db.collection.drop()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.dropIndex.html">db.collection.dropIndex()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.dropIndexes.html">db.collection.dropIndexes()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.ensureIndex.html">db.collection.ensureIndex()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.explain.html">db.collection.explain()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.find.html">db.collection.find()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.findAndModify.html">db.collection.findAndModify()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.findOne.html">db.collection.findOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.findOneAndDelete.html">db.collection.findOneAndDelete()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.findOneAndReplace.html">db.collection.findOneAndReplace()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.findOneAndUpdate.html">db.collection.findOneAndUpdate()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.getIndexes.html">db.collection.getIndexes()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.getShardDistribution.html">db.collection.getShardDistribution()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.getShardVersion.html">db.collection.getShardVersion()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.insert.html">db.collection.insert()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.insertOne.html">db.collection.insertOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.insertMany.html">db.collection.insertMany()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.isCapped.html">db.collection.isCapped()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.latencyStats.html">db.collection.latencyStats()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.mapReduce.html">db.collection.mapReduce()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.reIndex.html">db.collection.reIndex()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.remove.html">db.collection.remove()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.renameCollection.html">db.collection.renameCollection()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.replaceOne.html">db.collection.replaceOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.save.html">db.collection.save()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.stats.html">db.collection.stats()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.storageSize.html">db.collection.storageSize()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.totalIndexSize.html">db.collection.totalIndexSize()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.totalSize.html">db.collection.totalSize()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.update.html">db.collection.update()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.updateOne.html">db.collection.updateOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.updateMany.html">db.collection.updateMany()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.watch.html">db.collection.watch()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.validate.html">db.collection.validate()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-cursor.html">Cursor Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/cursor.addOption.html">cursor.addOption()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.allowPartialResults.html">cursor.allowPartialResults()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.batchSize.html">cursor.batchSize()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.close.html">cursor.close()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.isClosed.html">cursor.isClosed()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.collation.html">cursor.collation()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.comment.html">cursor.comment()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.count.html">cursor.count()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.explain.html">cursor.explain()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.forEach.html">cursor.forEach()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.hasNext.html">cursor.hasNext()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.hint.html">cursor.hint()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.isExhausted.html">cursor.isExhausted()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.itcount.html">cursor.itcount()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.limit.html">cursor.limit()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.map.html">cursor.map()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.max.html">cursor.max()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.maxTimeMS.html">cursor.maxTimeMS()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.min.html">cursor.min()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.next.html">cursor.next()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.noCursorTimeout.html">cursor.noCursorTimeout()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.objsLeftInBatch.html">cursor.objsLeftInBatch()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.pretty.html">cursor.pretty()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.readConcern.html">cursor.readConcern()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.readPref.html">cursor.readPref()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.returnKey.html">cursor.returnKey()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.showRecordId.html">cursor.showRecordId()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.size.html">cursor.size()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.skip.html">cursor.skip()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.sort.html">cursor.sort()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.tailable.html">cursor.tailable()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cursor.toArray.html">cursor.toArray()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-database.html">Database Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.adminCommand.html">db.adminCommand()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.aggregate.html">db.aggregate()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.cloneCollection.html">db.cloneCollection()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.cloneDatabase.html">db.cloneDatabase()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.commandHelp.html">db.commandHelp()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.copyDatabase.html">db.copyDatabase()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.createCollection.html">db.createCollection()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.createView.html">db.createView()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.currentOp.html">db.currentOp()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.dropDatabase.html">db.dropDatabase()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.eval.html">db.eval()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.fsyncLock.html">db.fsyncLock()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.fsyncUnlock.html">db.fsyncUnlock()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getCollection.html">db.getCollection()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getCollectionInfos.html">db.getCollectionInfos()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getCollectionNames.html">db.getCollectionNames()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getLastError.html">db.getLastError()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getLastErrorObj.html">db.getLastErrorObj()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getLogComponents.html">db.getLogComponents()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getMongo.html">db.getMongo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getName.html">db.getName()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getProfilingLevel.html">db.getProfilingLevel()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getProfilingStatus.html">db.getProfilingStatus()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getReplicationInfo.html">db.getReplicationInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getSiblingDB.html">db.getSiblingDB()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.help.html">db.help()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.hostInfo.html">db.hostInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.isMaster.html">db.isMaster()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.killOp.html">db.killOp()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.listCommands.html">db.listCommands()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.logout.html">db.logout()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.printCollectionStats.html">db.printCollectionStats()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.printReplicationInfo.html">db.printReplicationInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.printShardingStatus.html">db.printShardingStatus()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.printSlaveReplicationInfo.html">db.printSlaveReplicationInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.resetError.html">db.resetError()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.runCommand.html">db.runCommand()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.serverBuildInfo.html">db.serverBuildInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.serverCmdLineOpts.html">db.serverCmdLineOpts()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.serverStatus.html">db.serverStatus()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.setLogLevel.html">db.setLogLevel()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.setProfilingLevel.html">db.setProfilingLevel()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.shutdownServer.html">db.shutdownServer()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.stats.html">db.stats()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.version.html">db.version()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.watch.html">db.watch()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-plan-cache.html">Query Plan Cache Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.getPlanCache.html">db.collection.getPlanCache()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/PlanCache.clear.html">PlanCache.clear()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/PlanCache.clearPlansByQuery.html">PlanCache.clearPlansByQuery()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/PlanCache.getPlansByQuery.html">PlanCache.getPlansByQuery()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/PlanCache.help.html">PlanCache.help()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/PlanCache.listQueryShapes.html">PlanCache.listQueryShapes()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-bulk.html">Bulk Operation Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.initializeOrderedBulkOp.html">db.collection.initializeOrderedBulkOp()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.collection.initializeUnorderedBulkOp.html">db.collection.initializeUnorderedBulkOp()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.html">Bulk()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.execute.html">Bulk.execute()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.html">Bulk.find()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.arrayFilters.html">Bulk.find.arrayFilters()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.collation.html">Bulk.find.collation()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.hint.html">Bulk.find.hint()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.remove.html">Bulk.find.remove()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.removeOne.html">Bulk.find.removeOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.replaceOne.html">Bulk.find.replaceOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.updateOne.html">Bulk.find.updateOne()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.update.html">Bulk.find.update()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.find.upsert.html">Bulk.find.upsert()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.getOperations.html">Bulk.getOperations()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.insert.html">Bulk.insert()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.tojson.html">Bulk.tojson()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Bulk.toString.html">Bulk.toString()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-user-management.html">User Management Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.auth.html">db.auth()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.changeUserPassword.html">db.changeUserPassword()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.createUser.html">db.createUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.dropUser.html">db.dropUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.dropAllUsers.html">db.dropAllUsers()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getUser.html">db.getUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getUsers.html">db.getUsers()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.grantRolesToUser.html">db.grantRolesToUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.removeUser.html">db.removeUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.revokeRolesFromUser.html">db.revokeRolesFromUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.updateUser.html">db.updateUser()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/passwordPrompt.html">passwordPrompt()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-role-management.html">Role Management Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.createRole.html">db.createRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.dropRole.html">db.dropRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.dropAllRoles.html">db.dropAllRoles()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getRole.html">db.getRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getRoles.html">db.getRoles()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.grantPrivilegesToRole.html">db.grantPrivilegesToRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.revokePrivilegesFromRole.html">db.revokePrivilegesFromRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.grantRolesToRole.html">db.grantRolesToRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.revokeRolesFromRole.html">db.revokeRolesFromRole()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.updateRole.html">db.updateRole()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-replication.html">Replication Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/rs.add.html">rs.add()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.addArb.html">rs.addArb()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.conf.html">rs.conf()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.freeze.html">rs.freeze()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.help.html">rs.help()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.initiate.html">rs.initiate()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.printReplicationInfo.html">rs.printReplicationInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.printSlaveReplicationInfo.html">rs.printSlaveReplicationInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.reconfig.html">rs.reconfig()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.remove.html">rs.remove()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.slaveOk.html">rs.slaveOk()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.status.html">rs.status()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.stepDown.html">rs.stepDown()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rs.syncFrom.html">rs.syncFrom()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-sharding.html">Sharding Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/sh.addShard.html">sh.addShard()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.addShardTag.html">sh.addShardTag()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.addShardToZone.html">sh.addShardToZone()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.addTagRange.html">sh.addTagRange()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.disableBalancing.html">sh.disableBalancing()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.enableBalancing.html">sh.enableBalancing()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.disableAutoSplit.html">sh.disableAutoSplit</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.enableAutoSplit.html">sh.enableAutoSplit</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.enableSharding.html">sh.enableSharding()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.getBalancerHost.html">sh.getBalancerHost()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.getBalancerState.html">sh.getBalancerState()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.removeTagRange.html">sh.removeTagRange()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.removeRangeFromZone.html">sh.removeRangeFromZone()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.help.html">sh.help()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.isBalancerRunning.html">sh.isBalancerRunning()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.moveChunk.html">sh.moveChunk()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.removeShardTag.html">sh.removeShardTag()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.removeShardFromZone.html">sh.removeShardFromZone()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.setBalancerState.html">sh.setBalancerState()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.shardCollection.html">sh.shardCollection()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.splitAt.html">sh.splitAt()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.splitFind.html">sh.splitFind()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.startBalancer.html">sh.startBalancer()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.status.html">sh.status()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.stopBalancer.html">sh.stopBalancer()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.waitForBalancer.html">sh.waitForBalancer()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.waitForBalancerOff.html">sh.waitForBalancerOff()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.waitForPingChange.html">sh.waitForPingChange()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sh.updateZoneKeyRange.html">sh.updateZoneKeyRange()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/convertShardKeyToHashed.html">convertShardKeyToHashed</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-free-monitoring.html">Free Monitoring Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/db.disableFreeMonitoring.html">db.disableFreeMonitoring()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.enableFreeMonitoring.html">db.enableFreeMonitoring()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/db.getFreeMonitoringStatus.html">db.getFreeMonitoringStatus</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-constructor.html">Object Constructors and Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/BulkWriteResult.html">BulkWriteResult()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Date.html">Date()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ObjectId.html">ObjectId</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ObjectId.getTimestamp.html">ObjectId.getTimestamp()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ObjectId.toString.html">ObjectId.toString()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ObjectId.valueOf.html">ObjectId.valueOf()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/UUID.html">UUID()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/WriteResult.html">WriteResult()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/WriteResult.hasWriteError.html">WriteResult.hasWriteError()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/WriteResult.hasWriteConcernError.html">WriteResult.hasWriteConcernError()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-connection.html">Connection Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/connect.html">connect()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.html">Mongo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.getDB.html">Mongo.getDB()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.getReadPrefMode.html">Mongo.getReadPrefMode()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.getReadPrefTagSet.html">Mongo.getReadPrefTagSet()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.isCausalConsistency.html">Mongo.isCausalConsistency()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.setCausalConsistency.html">Mongo.setCausalConsistency()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.setReadPref.html">Mongo.setReadPref()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.setSlaveOk.html">Mongo.setSlaveOk()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.startSession.html">Mongo.startSession()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Mongo.watch.html">Mongo.watch()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/Session.html">Session</a><ul><li class="toctree-l5"><a class="reference internal" href="../method/Session.abortTransaction.html">Session.abortTransaction()</a></li><li class="toctree-l5"><a class="reference internal" href="../method/Session.commitTransaction.html">Session.commitTransaction()</a></li><li class="toctree-l5"><a class="reference internal" href="../method/Session.startTransaction.html">Session.startTransaction()</a></li></ul></li><li class="toctree-l4"><a class="reference internal" href="../method/SessionOptions.html">SessionOptions</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-native.html">Native Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/cat.html">cat()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/cd.html">cd()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/copyDbpath.html">copyDbpath()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/getHostName.html">getHostName()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/getMemInfo.html">getMemInfo()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/hostname.html">hostname()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/isInteractive.html">isInteractive()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/listFiles.html">listFiles()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/load.html">load()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ls.html">ls()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/md5sumFile.html">md5sumFile()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/mkdir.html">mkdir()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/pwd.html">pwd()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/quit.html">quit()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/removeFile.html">removeFile()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/resetDbpath.html">resetDbpath()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/sleep.html">sleep()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/setVerboseShell.html">setVerboseShell()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/version.html">version()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/isWindows.html">_isWindows()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/rand.html">_rand()</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../method/js-client-side-field-level-encryption.html">Client-Side Field Level Encryption Methods</a><ul><li class="toctree-l4"><a class="reference internal" href="../method/getKeyVault.html">getKeyVault()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.createKey.html">KeyVault.createKey()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.deleteKey.html">KeyVault.deleteKey()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.getKey.html">KeyVault.getKey()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.getKeys.html">KeyVault.getKeys()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.addKeyAlternateName.html">KeyVault.addKeyAlternateName()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.removeKeyAlternateName.html">KeyVault.removeKeyAlternateName()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/KeyVault.getKeyByAltName.html">KeyVault.getKeyByAltName()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/getClientEncryption.html">getClientEncryption()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ClientEncryption.encrypt.html">ClientEncryption.encrypt()</a></li><li class="toctree-l4"><a class="reference internal" href="../method/ClientEncryption.decrypt.html">ClientEncryption.decrypt()</a></li></ul></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../program.html">MongoDB Package Components</a><ul><li class="toctree-l3"><a class="reference internal" href="../program/mongod.html"><code class="docutils literal"><span class="pre">mongod</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongos.html"><code class="docutils literal"><span class="pre">mongos</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongo.html"><code class="docutils literal"><span class="pre">mongo</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongod.exe.html"><code class="docutils literal"><span class="pre">mongod.exe</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongos.exe.html"><code class="docutils literal"><span class="pre">mongos.exe</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongodump.html"><code class="docutils literal"><span class="pre">mongodump</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongorestore.html"><code class="docutils literal"><span class="pre">mongorestore</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/bsondump.html"><code class="docutils literal"><span class="pre">bsondump</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongoimport.html"><code class="docutils literal"><span class="pre">mongoimport</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongoexport.html"><code class="docutils literal"><span class="pre">mongoexport</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongostat.html"><code class="docutils literal"><span class="pre">mongostat</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongotop.html"><code class="docutils literal"><span class="pre">mongotop</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongoreplay.html"><code class="docutils literal"><span class="pre">mongoreplay</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongoldap.html"><code class="docutils literal"><span class="pre">mongoldap</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/mongofiles.html"><code class="docutils literal"><span class="pre">mongofiles</span></code></a></li><li class="toctree-l3"><a class="reference internal" href="../program/install_compass.html"><code class="docutils literal"><span class="pre">install_compass</span></code></a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../configuration-options.html">Configuration File Options</a><ul><li class="toctree-l3"><a class="reference internal" href="../expansion-directives.html">Externally Sourced Configuration File Values</a></li><li class="toctree-l3"><a class="reference internal" href="../../tutorial/convert-command-line-options-to-yaml.html">Convert Command-Line Options to YAML</a></li><li class="toctree-l3"><a class="reference internal" href="../configuration-file-settings-command-line-options-mapping.html">Configuration File Settings and Command-Line Options Mapping</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../parameters.html">MongoDB Server Parameters</a></li><li class="toctree-l2"><a class="reference internal" href="../limits.html">MongoDB Limits and Thresholds</a></li><li class="toctree-l2"><a class="reference internal" href="../explain-results.html">Explain Results</a></li><li class="toctree-l2"><a class="reference internal" href="../system-collections.html">System Collections</a></li><li class="toctree-l2"><a class="reference internal" href="../connection-string.html">Connection String URI Format</a></li><li class="toctree-l2"><a class="reference internal" href="../collation.html">Collation</a><ul><li class="toctree-l3"><a class="reference internal" href="../collation-locales-defaults.html">Collation Locales and Default Parameters</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../mongodb-wire-protocol.html">MongoDB Wire Protocol</a></li><li class="toctree-l2"><a class="reference internal" href="../log-messages.html">Log Messages</a></li><li class="toctree-l2"><a class="reference internal" href="../exit-codes.html">Exit Codes and Statuses</a></li><li class="toctree-l2"><a class="reference internal" href="../glossary.html">Glossary</a></li><li class="toctree-l2"><a class="reference internal" href="../default-mongodb-port.html">Default MongoDB Port</a></li><li class="toctree-l2"><a class="reference internal" href="../server-sessions.html">Server Sessions</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../release-notes.html">Release Notes</a><ul><li class="toctree-l2"><a class="reference internal" href="../../release-notes/4.2.html">Release Notes for MongoDB 4.2</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.2-compatibility.html">Compatibility Changes in MongoDB 4.2</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.2-upgrade-standalone.html">Upgrade a Standalone to 4.2</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.2-upgrade-replica-set.html">Upgrade a Replica Set to 4.2</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.2-upgrade-sharded-cluster.html">Upgrade a Sharded Cluster to 4.2</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.2-downgrade.html">Downgrade 4.2 to 4.0</a><ul><li class="toctree-l4"><a class="reference internal" href="../../release-notes/4.2-downgrade-standalone.html">Downgrade 4.2 Standalone to 4.0</a></li><li class="toctree-l4"><a class="reference internal" href="../../release-notes/4.2-downgrade-replica-set.html">Downgrade 4.2 Replica Set to 4.0</a></li><li class="toctree-l4"><a class="reference internal" href="../../release-notes/4.2-downgrade-sharded-cluster.html">Downgrade 4.2 Sharded Cluster to 4.0</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.2-changelog.html">4.2 Changelog</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/4.0.html">Release Notes for MongoDB 4.0</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-compatibility.html">Compatibility Changes in MongoDB 4.0</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-upgrade-standalone.html">Upgrade a Standalone to 4.0</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-upgrade-replica-set.html">Upgrade a Replica Set to 4.0</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-upgrade-sharded-cluster.html">Upgrade a Sharded Cluster to 4.0</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-downgrade-standalone.html">Downgrade 4.0 Standalone to 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-downgrade-replica-set.html">Downgrade 4.0 Replica Set to 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-downgrade-sharded-cluster.html">Downgrade 4.0 Sharded Cluster to 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/4.0-changelog.html">4.0 Changelog</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/3.6.html">Release Notes for MongoDB 3.6</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-changelog.html">3.6 Changelog</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-compatibility.html">Compatibility Changes in MongoDB 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-upgrade-standalone.html">Upgrade a Standalone to 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-upgrade-replica-set.html">Upgrade a Replica Set to 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-upgrade-sharded-cluster.html">Upgrade a Sharded Cluster to 3.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-downgrade-standalone.html">Downgrade 3.6 Standalone to 3.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-downgrade-replica-set.html">Downgrade 3.6 Replica Set to 3.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.6-downgrade-sharded-cluster.html">Downgrade 3.6 Sharded Cluster to 3.4</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/3.4.html">Release Notes for MongoDB 3.4</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.4-changelog.html">3.4 Changelog</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.4-compatibility.html">Compatibility Changes in MongoDB 3.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.4-upgrade-standalone.html">Upgrade a Standalone to 3.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.4-upgrade-replica-set.html">Upgrade a Replica Set to 3.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.4-upgrade-sharded-cluster.html">Upgrade a Sharded Cluster to 3.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.4-downgrade.html">Downgrade MongoDB 3.4 to 3.2</a><ul><li class="toctree-l4"><a class="reference internal" href="../../release-notes/3.4-downgrade-standalone.html">Downgrade 3.4 Standalone to 3.2</a></li><li class="toctree-l4"><a class="reference internal" href="../../release-notes/3.4-downgrade-replica-set.html">Downgrade 3.4 Replica Set to 3.2</a></li><li class="toctree-l4"><a class="reference internal" href="../../release-notes/3.4-downgrade-sharded-cluster.html">Downgrade 3.4 Sharded Cluster to 3.2</a></li></ul></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/3.2.html">Release Notes for MongoDB 3.2</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.2-changelog.html">3.2 Changelog</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.2-compatibility.html">Compatibility Changes in MongoDB 3.2</a><ul><li class="toctree-l4"><a class="reference internal" href="../../release-notes/3.2-javascript.html">JavaScript Changes in MongoDB 3.2</a></li></ul></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.2-upgrade.html">Upgrade MongoDB to 3.2</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.2-downgrade.html">Downgrade MongoDB from 3.2</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/3.0.html">Release Notes for MongoDB 3.0</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.0-changelog.html">3.0 Changelog</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.0-compatibility.html">Compatibility Changes in MongoDB 3.0</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.0-upgrade.html">Upgrade MongoDB to 3.0</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.0-scram.html">Upgrade to SCRAM</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/3.0-downgrade.html">Downgrade MongoDB from 3.0</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/2.6.html">Release Notes for MongoDB 2.6</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.6-changelog.html">2.6 Changelog</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.6-compatibility.html">Compatibility Changes in MongoDB 2.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.6-upgrade.html">Upgrade MongoDB to 2.6</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.6-upgrade-authorization.html">Upgrade User Authorization Data to 2.6 Format</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.6-downgrade.html">Downgrade MongoDB from 2.6</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/2.4.html">Release Notes for MongoDB 2.4</a><ul><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.4-changelog.html">2.4 Changelog</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.4-javascript.html">JavaScript Changes in MongoDB 2.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.4-upgrade.html">Upgrade MongoDB to 2.4</a></li><li class="toctree-l3"><a class="reference internal" href="../../release-notes/2.4-index-types.html">Compatibility and Index Type Changes in MongoDB 2.4</a></li></ul></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/2.2.html">Release Notes for MongoDB 2.2</a></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/2.0.html">Release Notes for MongoDB 2.0</a></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/1.8.html">Release Notes for MongoDB 1.8</a></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/1.6.html">Release Notes for MongoDB 1.6</a></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/1.4.html">Release Notes for MongoDB 1.4</a></li><li class="toctree-l2"><a class="reference internal" href="../../release-notes/1.2.html">Release Notes for MongoDB 1.2.x</a></li><li class="toctree-l2"><a class="reference internal" href="../versioning.html">MongoDB Versioning</a></li></ul></li><li class="toctree-l1"><a class="reference internal" href="../../support.html">Technical Support</a></li></ul>


    </div>
  </div>
           
         </aside>

   </div>

    <div id="main-column" class="main-column">

    <span id="showNav" class="showNav">Navigation</span>

      
        <div class="document">
            <div class="documentwrapper"><div class="bodywrapper">
              <div class="body" data-pagename="reference/command/aggregate">
                   <a class="edit-link" href="https://github.com/mongodb/docs/blob/v4.2/source/reference/command/aggregate.txt" target="_blank" title="Edit reference/command/aggregate.txt on GitHub">
    
      <span class="icon-edit"></span>
    
  </a>
                

                
  <div class="bc">
    
      <ul>
          <li><a href="../../reference.html">Reference</a><span class="bcpoint"> > </span></li>
            
          <li><a href="../command.html">Database Commands</a><span class="bcpoint"> > </span></li>
            
          <li><a href="nav-aggregation.html">Aggregation Commands</a><span class="bcpoint"> > </span></li>
            <li>aggregate</li> 
      </ul>
    
    
  </div>
                
                  <div class="section" id="aggregate">
<h1>aggregate<a class="headerlink" href="#aggregate" title="Permalink to this headline">¶</a></h1>
<div class="contents singlecol local topic" id="on-this-page">
<p class="topic-title first">On this page</p>
<ul class="simple">
<li><a class="reference internal" href="#definition" id="id1">Definition</a></li>
<li><a class="reference internal" href="#syntax" id="id2">Syntax</a></li>
<li><a class="reference internal" href="#sessions" id="id3">Sessions</a></li>
<li><a class="reference internal" href="#transactions" id="id4">Transactions</a></li>
<li><a class="reference internal" href="#example" id="id5">Example</a></li>
</ul>
</div>
<div class="section" id="definition">
<h2>Definition<a class="headerlink" href="#definition" title="Permalink to this headline">¶</a></h2>
<dl class="dbcommand">
<dt id="dbcmd.aggregate">
<code class="descname">aggregate</code><a class="headerlink" href="#dbcmd.aggregate" title="Permalink to this definition">¶</a></dt>
<dd><p>Performs aggregation operation using the <a class="reference internal" href="../operator/aggregation-pipeline.html"><span class="doc">aggregation pipeline</span></a>. The pipeline allows users
to process data from a collection or other source with a sequence of
stage-based manipulations.</p>
</dd></dl>

</div>
<div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
<p>The command has following syntax:</p>
<div class="versionchanged">
<p><span class="versionmodified">Changed in version 3.6.</span></p>
</div>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span>
  <span class="nx">aggregate</span><span class="o">:</span> <span class="s2">&quot;&lt;collection&gt;&quot;</span> <span class="o">||</span> <span class="mi">1</span><span class="p">,</span>
  <span class="nx">pipeline</span><span class="o">:</span> <span class="p">[</span> <span class="o">&lt;</span><span class="nx">stage</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="p">...</span><span class="o">&gt;</span> <span class="p">],</span>
  <span class="nx">explain</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">boolean</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">allowDiskUse</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">boolean</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">cursor</span><span class="o">:</span> <span class="o">&lt;</span><span class="nb">document</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">maxTimeMS</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">int</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">bypassDocumentValidation</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">boolean</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">readConcern</span><span class="o">:</span> <span class="o">&lt;</span><span class="nb">document</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">collation</span><span class="o">:</span> <span class="o">&lt;</span><span class="nb">document</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">hint</span><span class="o">:</span> <span class="o">&lt;</span><span class="nx">string</span> <span class="nx">or</span> <span class="nb">document</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">comment</span><span class="o">:</span> <span class="o">&lt;</span><span class="nx">string</span><span class="o">&gt;</span><span class="p">,</span>
  <span class="nx">writeConcern</span><span class="o">:</span> <span class="o">&lt;</span><span class="nb">document</span><span class="o">&gt;</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="admonition-tip admonition">
<p class="first admonition-title">Tip</p>
<p class="last">Rather than run the <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command directly, most
users should use the <a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> helper
provided in the <a class="reference internal" href="../program/mongo.html#bin.mongo" title="bin.mongo"><code class="xref mongodb mongodb-binary docutils literal"><span class="pre">mongo</span></code></a> shell or the equivalent helper in
their driver. In 2.6 and later, the
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> helper always returns a cursor.</p>
</div>
<div class="section" id="command-fields">
<h3>Command Fields<a class="headerlink" href="#command-fields" title="Permalink to this headline">¶</a></h3>
<p>The <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command takes the following fields as
arguments:</p>
<table border="1" class="colwidths-given docutils">
<colgroup>
<col width="17%" />
<col width="17%" />
<col width="67%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Field</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">aggregate</span></code></td>
<td>string</td>
<td>The name of the collection or view that acts as the input for the
aggregation pipeline. Use <code class="docutils literal"><span class="pre">1</span></code> for collection agnostic commands.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">pipeline</span></code></td>
<td>array</td>
<td>An array of <a class="reference internal" href="../operator/aggregation-pipeline.html"><span class="doc">aggregation pipeline stages</span></a> that process and
transform the document stream as part of the aggregation pipeline.</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">explain</span></code></td>
<td>boolean</td>
<td><p class="first">Optional. Specifies to return the information on the processing of the pipeline.</p>
<p class="last">Not available in <a class="reference internal" href="../../core/transactions.html"><span class="doc">multi-document transactions</span></a>.</p>
</td>
</tr>
<tr class="row-odd"><td><a class="reference internal" href="#cmd-aggregate-allowdiskuse"><span class="std std-ref">allowDiskUse</span></a></td>
<td>boolean</td>
<td><p class="first" id="cmd-aggregate-allowdiskuse">Optional. Enables writing to temporary files. When set to <code class="docutils literal"><span class="pre">true</span></code>, most aggregation
stages can write data to the <code class="file docutils literal"><span class="pre">_tmp</span></code> subdirectory in the
<a class="reference internal" href="../configuration-options.html#storage.dbPath" title="storage.dbPath"><code class="xref mongodb mongodb-setting docutils literal"><span class="pre">dbPath</span></code></a> directory with  the following exceptions:</p>
<ul class="simple">
<li><a class="reference internal" href="../operator/aggregation/graphLookup.html#pipe._S_graphLookup" title="$graphLookup"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$graphLookup</span></code></a> stage</li>
<li><a class="reference internal" href="../operator/aggregation/addToSet.html#grp._S_addToSet" title="$addToSet"><code class="xref mongodb mongodb-group docutils literal"><span class="pre">$addToSet</span></code></a> accumulator expression used in the
<a class="reference internal" href="../operator/aggregation/group.html#pipe._S_group" title="$group"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$group</span></code></a> stage (Starting in version 4.2.3, 4.0.14, 3.6.17)</li>
<li><a class="reference internal" href="../operator/aggregation/push.html#grp._S_push" title="$push"><code class="xref mongodb mongodb-group docutils literal"><span class="pre">$push</span></code></a> accumulator expression used in the
<a class="reference internal" href="../operator/aggregation/group.html#pipe._S_group" title="$group"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$group</span></code></a> stage (Starting in version 4.2.3, 4.0.14, 3.6.17)</li>
</ul>
<p class="last">Starting in MongoDB 4.2, the <a class="reference internal" href="../../tutorial/manage-the-database-profiler.html"><span class="doc">profiler log messages</span></a> and <a class="reference internal" href="../log-messages.html"><span class="doc">diagnostic log
messages</span></a> includes a <code class="docutils literal"><span class="pre">usedDisk</span></code>
indicator if any aggregation stage wrote data to temporary files due
to <a class="reference internal" href="../../core/aggregation-pipeline-limits.html#agg-memory-restrictions"><span class="std std-ref">memory restrictions</span></a>.</p>
</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">cursor</span></code></td>
<td>document</td>
<td><p class="first">Specify a document that contains options that control the creation
of the cursor object.</p>
<div class="last versionchanged">
<p><span class="versionmodified">Changed in version 3.6: </span>MongoDB 3.6 removes the use of <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command
<strong>without</strong> the <code class="docutils literal"><span class="pre">cursor</span></code> option unless the command includes the
<code class="docutils literal"><span class="pre">explain</span></code> option. Unless you include the <code class="docutils literal"><span class="pre">explain</span></code> option, you must
specify the cursor option.</p>
<ul class="simple">
<li>To indicate a cursor with the default batch size, specify <code class="docutils literal"><span class="pre">cursor:</span>
<span class="pre">{}</span></code>.</li>
<li>To indicate a cursor with a non-default batch size, use <code class="docutils literal"><span class="pre">cursor:</span> <span class="pre">{</span>
<span class="pre">batchSize:</span> <span class="pre">&lt;num&gt;</span> <span class="pre">}</span></code>.</li>
</ul>
</div>
</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">maxTimeMS</span></code></td>
<td>non-negative integer</td>
<td><p class="first">Optional. Specifies a time limit in milliseconds for processing
operations on a cursor. If you do not specify a value for maxTimeMS,
operations will not time out. A value of <code class="docutils literal"><span class="pre">0</span></code> explicitly
specifies the default unbounded behavior.</p>
<p class="last">MongoDB terminates operations that exceed their allotted time limit
using the same mechanism as <a class="reference internal" href="../method/db.killOp.html#db.killOp" title="db.killOp()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.killOp()</span></code></a>. MongoDB only
terminates an operation at one of its designated <a class="reference internal" href="../glossary.html#term-interrupt-point"><span class="xref std std-term">interrupt
points</span></a>.</p>
</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">bypassDocumentValidation</span></code></td>
<td>boolean</td>
<td><p class="first">Optional. Applicable only if you specify the <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> or <a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> aggregation
stages.</p>
<p>Enables <code class="samp docutils literal"><span class="pre">aggregate</span></code> to bypass document validation
during the operation. This lets you insert documents that do not
meet the validation requirements.</p>
<div class="last versionadded">
<p><span class="versionmodified">New in version 3.2.</span></p>
</div>
</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">readConcern</span></code></td>
<td>document</td>
<td><p class="first">Optional. Specifies the <a class="reference internal" href="../glossary.html#term-read-concern"><span class="xref std std-term">read concern</span></a>.</p>
<p>Starting in MongoDB 3.6, the readConcern option has the following
syntax: <code class="docutils literal"><span class="pre">readConcern:</span> <span class="pre">{</span> <span class="pre">level:</span> <span class="pre">&lt;value&gt;</span> <span class="pre">}</span></code></p>
<p>Possible read concern levels are:</p>
<ul class="simple">
<li><a class="reference internal" href="../read-concern-local.html#readconcern.&quot;local&quot;" title="&quot;local&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;local&quot;</span></code></a>. This is the default read concern level for
read operations against primary and read operations against
secondaries when associated with <a class="reference internal" href="../../core/read-isolation-consistency-recency.html#causal-consistency"><span class="std std-ref">causally consistent sessions</span></a>.</li>
<li><a class="reference internal" href="../read-concern-available.html#readconcern.&quot;available&quot;" title="&quot;available&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;available&quot;</span></code></a>. This is the default for reads against
secondaries when when not associated with <a class="reference internal" href="../../core/read-isolation-consistency-recency.html#causal-consistency"><span class="std std-ref">causally consistent
sessions</span></a>. The query returns the instance’s most
recent data.</li>
<li><a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a>. Available for replica sets that use
<a class="reference internal" href="../../core/wiredtiger.html#storage-wiredtiger"><span class="std std-ref">WiredTiger storage engine</span></a>.</li>
<li><a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a>. Available for read operations on the
<a class="reference internal" href="../replica-states.html#replstate.PRIMARY" title="PRIMARY"><code class="xref mongodb mongodb-replstate docutils literal"><span class="pre">primary</span></code></a> only.</li>
</ul>
<p>For more formation on the read concern levels, see
<a class="reference internal" href="../read-concern.html#read-concern-levels"><span class="std std-ref">Read Concern Levels</span></a>.</p>
<p>Starting in MongoDB 4.2, the <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> stage cannot be used
in conjunction with read concern <a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a>. That
is, if you specify <a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a> read concern for
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a>, you cannot include the
<a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> stage in the pipeline.</p>
<p class="last">The <a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> stage cannot be used in conjunction with read
concern <a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a>. That is, if you specify
<a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a> read concern for
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a>, you cannot include the
<a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> stage in the pipeline.</p>
</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">collation</span></code></td>
<td>document</td>
<td><p class="first">Optional.</p>
<p>Specifies the <a class="reference internal" href="../bson-type-comparison-order.html#collation"><span class="std std-ref">collation</span></a>  to use for the operation.</p>
<p><a class="reference internal" href="../collation.html"><span class="doc">Collation</span></a> allows users to specify
language-specific rules for string comparison, such as rules for
lettercase and accent marks.</p>
<p>The collation option has the following syntax:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">collation</span><span class="o">:</span> <span class="p">{</span>
   <span class="nx">locale</span><span class="o">:</span> <span class="o">&lt;</span><span class="nx">string</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">caseLevel</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">boolean</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">caseFirst</span><span class="o">:</span> <span class="o">&lt;</span><span class="nx">string</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">strength</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">int</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">numericOrdering</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">boolean</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">alternate</span><span class="o">:</span> <span class="o">&lt;</span><span class="nx">string</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">maxVariable</span><span class="o">:</span> <span class="o">&lt;</span><span class="nx">string</span><span class="o">&gt;</span><span class="p">,</span>
   <span class="nx">backwards</span><span class="o">:</span> <span class="o">&lt;</span><span class="kr">boolean</span><span class="o">&gt;</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<p>When specifying collation, the <code class="docutils literal"><span class="pre">locale</span></code> field is mandatory; all
other collation fields are optional. For descriptions of the fields,
see <a class="reference internal" href="../collation.html#collation-document-fields"><span class="std std-ref">Collation Document</span></a>.</p>
<p>If the collation is unspecified but the collection has a
default collation (see <a class="reference internal" href="../method/db.createCollection.html#db.createCollection" title="db.createCollection()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.createCollection()</span></code></a>), the
operation uses the collation specified for the collection.</p>
<p>If no collation is specified for the collection or for the
operations, MongoDB uses the simple binary comparison used in prior
versions for string comparisons.</p>
<p>You cannot specify multiple collations for an operation. For
example, you cannot specify different collations per field, or if
performing a find with a sort, you cannot use one collation for the
find and another for the sort.</p>
<div class="last versionadded">
<p><span class="versionmodified">New in version 3.4.</span></p>
</div>
</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">hint</span></code></td>
<td>string or document</td>
<td><p class="first">Optional. The index to use for the aggregation. The index is on the initial
collection/view against which the aggregation is run.</p>
<p>Specify the index either by the index name or by the index
specification document.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">The <code class="docutils literal"><span class="pre">hint</span></code> does not apply to <a class="reference internal" href="../operator/aggregation/lookup.html#pipe._S_lookup" title="$lookup"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$lookup</span></code></a> and
<a class="reference internal" href="../operator/aggregation/graphLookup.html#pipe._S_graphLookup" title="$graphLookup"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$graphLookup</span></code></a> stages.</p>
</div>
<div class="last versionadded">
<p><span class="versionmodified">New in version 3.6.</span></p>
</div>
</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">comment</span></code></td>
<td>string</td>
<td><p class="first">Optional. Users can specify an arbitrary string to help trace the operation
through the database profiler, currentOp, and logs.</p>
<div class="last versionadded">
<p><span class="versionmodified">New in version 3.6.</span></p>
</div>
</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">writeConcern</span></code></td>
<td>document</td>
<td><p class="first">Optional. A document that expresses the <a class="reference internal" href="../write-concern.html"><span class="doc">write concern</span></a>
to use with the <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> or <a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> stage.</p>
<p class="last">Omit to use the default write concern with the <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> or
<a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> stage.</p>
</td>
</tr>
</tbody>
</table>
<p>MongoDB 3.6 removes the use of <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command
<strong>without</strong> the <code class="docutils literal"><span class="pre">cursor</span></code> option unless the command includes the
<code class="docutils literal"><span class="pre">explain</span></code> option. Unless you include the <code class="docutils literal"><span class="pre">explain</span></code> option, you must
specify the cursor option.</p>
<ul class="simple">
<li>To indicate a cursor with the default batch size, specify <code class="docutils literal"><span class="pre">cursor:</span>
<span class="pre">{}</span></code>.</li>
<li>To indicate a cursor with a non-default batch size, use <code class="docutils literal"><span class="pre">cursor:</span> <span class="pre">{</span>
<span class="pre">batchSize:</span> <span class="pre">&lt;num&gt;</span> <span class="pre">}</span></code>.</li>
</ul>
<p>For more information about the aggregation pipeline
<a class="reference internal" href="../../core/aggregation-pipeline.html"><span class="doc">Aggregation Pipeline</span></a>, <a class="reference internal" href="../aggregation.html"><span class="doc">Aggregation Reference</span></a>, and
<a class="reference internal" href="../../core/aggregation-pipeline-limits.html"><span class="doc">Aggregation Pipeline Limits</span></a>.</p>
</div>
</div>
<div class="section" id="sessions">
<h2>Sessions<a class="headerlink" href="#sessions" title="Permalink to this headline">¶</a></h2>
<div class="versionadded">
<p><span class="versionmodified">New in version 4.0.</span></p>
</div>
<p>For cursors created inside a session, you cannot call
<a class="reference internal" href="getMore.html#dbcmd.getMore" title="getMore"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">getMore</span></code></a> outside the session.</p>
<p>Similarly, for cursors created outside of a session, you cannot call
<a class="reference internal" href="getMore.html#dbcmd.getMore" title="getMore"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">getMore</span></code></a> inside a session.</p>
<div class="section" id="session-idle-timeout">
<h3>Session Idle Timeout<a class="headerlink" href="#session-idle-timeout" title="Permalink to this headline">¶</a></h3>
<p>Starting in MongoDB 3.6, MongoDB drivers and the <a class="reference internal" href="../program/mongo.html#bin.mongo" title="bin.mongo"><code class="xref mongodb mongodb-binary docutils literal"><span class="pre">mongo</span></code></a>
shell associate all operations with a <a class="reference internal" href="../server-sessions.html"><span class="doc">server session</span></a>, with the exception of unacknowledged
write operations. For operations not explicitly associated with a
session (i.e. using <a class="reference internal" href="../method/Mongo.startSession.html#Mongo.startSession" title="Mongo.startSession()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">Mongo.startSession()</span></code></a>), MongoDB drivers
and the <code class="docutils literal"><span class="pre">mongo</span></code> shell creates an implicit session and associates it
with the operation.</p>
<p>If a session is idle for longer than 30 minutes, the MongoDB server
marks that session as expired and may close it at any time. When the
MongoDB server closes the session, it also kills any in-progress
operations and open cursors associated with the session. This
includes cursors configured with <a class="reference internal" href="../method/cursor.noCursorTimeout.html#cursor.noCursorTimeout" title="cursor.noCursorTimeout"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">noCursorTimeout</span></code></a> or
a <a class="reference internal" href="../method/cursor.maxTimeMS.html#cursor.maxTimeMS" title="cursor.maxTimeMS"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">maxTimeMS</span></code></a> greater than 30 minutes.</p>
<p>For operations that return a cursor, if the cursor may be idle for
longer than 30 minutes, issue the operation within an explicit session
using <code class="xref mongodb mongodb-method docutils literal"><span class="pre">Session.startSession()</span></code> and periodically refresh the
session using the <a class="reference internal" href="refreshSessions.html#dbcmd.refreshSessions" title="refreshSessions"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">refreshSessions</span></code></a> command. See
<a class="reference internal" href="../limits.html#Session-Idle-Timeout" title="Session Idle Timeout"><code class="xref mongodb mongodb-limit docutils literal"><span class="pre">Session</span> <span class="pre">Idle</span> <span class="pre">Timeout</span></code></a> for more information.</p>
</div>
</div>
<div class="section" id="transactions">
<h2>Transactions<a class="headerlink" href="#transactions" title="Permalink to this headline">¶</a></h2>
<p><a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> can be used inside <a class="reference internal" href="../../core/transactions.html"><span class="doc">multi-document transactions</span></a>.</p>
<p>However, the following stages are not allowed within transactions:</p>
<ul class="simple">
<li><a class="reference internal" href="../operator/aggregation/collStats.html#pipe._S_collStats" title="$collStats"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$collStats</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/currentOp.html#pipe._S_currentOp" title="$currentOp"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$currentOp</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/indexStats.html#pipe._S_indexStats" title="$indexStats"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$indexStats</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/listLocalSessions.html#pipe._S_listLocalSessions" title="$listLocalSessions"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$listLocalSessions</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/listSessions.html#pipe._S_listSessions" title="$listSessions"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$listSessions</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a></li>
<li><a class="reference internal" href="../operator/aggregation/planCacheStats.html#pipe._S_planCacheStats" title="$planCacheStats"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$planCacheStats</span></code></a></li>
</ul>
<p>You also cannot specify the <code class="docutils literal"><span class="pre">explain</span></code> option.</p>
<ul class="simple">
<li>For cursors created outside of a transaction, you cannot call
<a class="reference internal" href="getMore.html#dbcmd.getMore" title="getMore"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">getMore</span></code></a> inside the transaction.</li>
<li>For cursors created in a transaction, you cannot call
<a class="reference internal" href="getMore.html#dbcmd.getMore" title="getMore"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">getMore</span></code></a> outside the transaction.</li>
</ul>
<div class="admonition important">
<p class="first admonition-title">Important</p>
<p>In most cases, multi-document transaction incurs a greater
performance cost over single document writes, and the
availability of multi-document transactions should not be a
replacement for effective schema design. For many scenarios, the
<a class="reference internal" href="../../core/data-model-design.html#data-modeling-embedding"><span class="std std-ref">denormalized data model (embedded documents and arrays)</span></a> will continue to be optimal for your
data and use cases. That is, for many scenarios, modeling your data
appropriately will minimize the need for multi-document
transactions.</p>
<p class="last">For additional transactions usage considerations
(such as runtime limit and oplog size limit), see also
<a class="reference internal" href="../../core/transactions-production-consideration.html"><span class="doc">Production Considerations</span></a>.</p>
</div>
<div class="section" id="client-disconnection">
<h3>Client Disconnection<a class="headerlink" href="#client-disconnection" title="Permalink to this headline">¶</a></h3>
<p>For <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> operation that do not include the
<a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> or <a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> stages:</p>
<p>Starting in MongoDB 4.2, if the client that issued the <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a>
disconnects before the operation completes, MongoDB marks
the <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> for termination (i.e. <a class="reference internal" href="killOp.html#dbcmd.killOp" title="killOp"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">killOp</span></code></a> on the
operation).</p>
</div>
</div>
<div class="section" id="example">
<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
<div class="versionchanged">
<p><span class="versionmodified">Changed in version 3.4: </span>MongoDB 3.6 removes the use of <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command
<strong>without</strong> the <code class="docutils literal"><span class="pre">cursor</span></code> option unless the command includes the
<code class="docutils literal"><span class="pre">explain</span></code> option. Unless you include the <code class="docutils literal"><span class="pre">explain</span></code> option, you must
specify the cursor option.</p>
<ul class="simple">
<li>To indicate a cursor with the default batch size, specify <code class="docutils literal"><span class="pre">cursor:</span>
<span class="pre">{}</span></code>.</li>
<li>To indicate a cursor with a non-default batch size, use <code class="docutils literal"><span class="pre">cursor:</span> <span class="pre">{</span>
<span class="pre">batchSize:</span> <span class="pre">&lt;num&gt;</span> <span class="pre">}</span></code>.</li>
</ul>
<p>Rather than run the <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command directly, most
users should use the <a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> helper
provided in the <a class="reference internal" href="../program/mongo.html#bin.mongo" title="bin.mongo"><code class="xref mongodb mongodb-binary docutils literal"><span class="pre">mongo</span></code></a> shell or the equivalent helper in
their driver. In 2.6 and later, the
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> helper always returns a cursor.</p>
<p>Except for the first two examples which demonstrate the command
syntax, the examples in this page use the
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> helper.</p>
</div>
<div class="section" id="aggregate-data-with-multi-stage-pipeline">
<h3>Aggregate Data with Multi-Stage Pipeline<a class="headerlink" href="#aggregate-data-with-multi-stage-pipeline" title="Permalink to this headline">¶</a></h3>
<p>A collection <code class="docutils literal"><span class="pre">articles</span></code> contains documents such as the following:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span>
   <span class="nx">_id</span><span class="o">:</span> <span class="nx">ObjectId</span><span class="p">(</span><span class="s2">&quot;52769ea0f3dc6ead47c9a1b2&quot;</span><span class="p">),</span>
   <span class="nx">author</span><span class="o">:</span> <span class="s2">&quot;abc123&quot;</span><span class="p">,</span>
   <span class="nx">title</span><span class="o">:</span> <span class="s2">&quot;zzz&quot;</span><span class="p">,</span>
   <span class="nx">tags</span><span class="o">:</span> <span class="p">[</span> <span class="s2">&quot;programming&quot;</span><span class="p">,</span> <span class="s2">&quot;database&quot;</span><span class="p">,</span> <span class="s2">&quot;mongodb&quot;</span> <span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<p>The following example performs an <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> operation on
the <code class="docutils literal"><span class="pre">articles</span></code> collection to calculate the count of each distinct
element in the <code class="docutils literal"><span class="pre">tags</span></code> array that appears in the collection.</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">runCommand</span><span class="p">(</span> <span class="p">{</span>
   <span class="nx">aggregate</span><span class="o">:</span> <span class="s2">&quot;articles&quot;</span><span class="p">,</span>
   <span class="nx">pipeline</span><span class="o">:</span> <span class="p">[</span>
      <span class="p">{</span> <span class="nx">$project</span><span class="o">:</span> <span class="p">{</span> <span class="nx">tags</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$unwind</span><span class="o">:</span> <span class="s2">&quot;$tags&quot;</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$group</span><span class="o">:</span> <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="s2">&quot;$tags&quot;</span><span class="p">,</span> <span class="nx">count</span><span class="o">:</span> <span class="p">{</span> <span class="nx">$sum</span> <span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span>
   <span class="p">],</span>
   <span class="nx">cursor</span><span class="o">:</span> <span class="p">{</span> <span class="p">}</span>
<span class="p">}</span> <span class="p">)</span>
</pre></div>
</div>
</div>
<p>In the <a class="reference internal" href="../program/mongo.html#bin.mongo" title="bin.mongo"><code class="xref mongodb mongodb-binary docutils literal"><span class="pre">mongo</span></code></a> shell, this operation can use the
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> helper as in the following:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">articles</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">(</span> <span class="p">[</span>
   <span class="p">{</span> <span class="nx">$project</span><span class="o">:</span> <span class="p">{</span> <span class="nx">tags</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">},</span>
   <span class="p">{</span> <span class="nx">$unwind</span><span class="o">:</span> <span class="s2">&quot;$tags&quot;</span> <span class="p">},</span>
   <span class="p">{</span> <span class="nx">$group</span><span class="o">:</span> <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="s2">&quot;$tags&quot;</span><span class="p">,</span> <span class="nx">count</span><span class="o">:</span> <span class="p">{</span> <span class="nx">$sum</span> <span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span>
<span class="p">]</span> <span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="use-currentop-on-an-admin-database">
<h3>Use $currentOp on an Admin Database<a class="headerlink" href="#use-currentop-on-an-admin-database" title="Permalink to this headline">¶</a></h3>
<p>The following example runs a pipeline with two stages on the admin
database. The first stage runs the <a class="reference internal" href="../operator/aggregation/currentOp.html#pipe._S_currentOp" title="$currentOp"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$currentOp</span></code></a> operation
and the second stage filters the results of that operation.</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">adminCommand</span><span class="p">(</span> <span class="p">{</span>
   <span class="nx">aggregate</span> <span class="o">:</span> <span class="mi">1</span><span class="p">,</span>
   <span class="nx">pipeline</span> <span class="o">:</span> <span class="p">[</span> <span class="p">{</span>
      <span class="nx">$currentOp</span> <span class="o">:</span> <span class="p">{</span> <span class="nx">allUsers</span> <span class="o">:</span> <span class="kc">true</span><span class="p">,</span> <span class="nx">idleConnections</span> <span class="o">:</span> <span class="kc">true</span> <span class="p">}</span> <span class="p">},</span> <span class="p">{</span>
      <span class="nx">$match</span> <span class="o">:</span> <span class="p">{</span> <span class="nx">shard</span> <span class="o">:</span> <span class="s2">&quot;shard01&quot;</span> <span class="p">}</span>
      <span class="p">}</span>
   <span class="p">],</span>
   <span class="nx">cursor</span> <span class="o">:</span> <span class="p">{</span> <span class="p">}</span>
<span class="p">}</span> <span class="p">)</span>
</pre></div>
</div>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p>The <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command does not specify a collection and
instead takes the form <cite>{aggregate: 1}</cite>. This is because the initial
<a class="reference internal" href="../operator/aggregation/currentOp.html#pipe._S_currentOp" title="$currentOp"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$currentOp</span></code></a> stage does not draw input from a collection. It
produces its own data that the rest of the pipeline uses.</p>
<p class="last">The new <a class="reference internal" href="../method/db.aggregate.html#db.aggregate" title="db.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.aggregate()</span></code></a> helper has been added to assist in
running collectionless aggregations such as this. The above aggregation
could also be run like <a class="reference internal" href="../method/db.aggregate.html#admin-pipeline-currentop"><span class="std std-ref">this</span></a> example.</p>
</div>
</div>
<div class="section" id="return-information-on-the-aggregation-operation">
<h3>Return Information on the Aggregation Operation<a class="headerlink" href="#return-information-on-the-aggregation-operation" title="Permalink to this headline">¶</a></h3>
<p>The following aggregation operation sets the optional field <code class="docutils literal"><span class="pre">explain</span></code>
to <code class="docutils literal"><span class="pre">true</span></code> to return information about the aggregation operation.</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">orders</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">([</span>
      <span class="p">{</span> <span class="nx">$match</span><span class="o">:</span> <span class="p">{</span> <span class="nx">status</span><span class="o">:</span> <span class="s2">&quot;A&quot;</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$group</span><span class="o">:</span> <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="s2">&quot;$cust_id&quot;</span><span class="p">,</span> <span class="nx">total</span><span class="o">:</span> <span class="p">{</span> <span class="nx">$sum</span><span class="o">:</span> <span class="s2">&quot;$amount&quot;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$sort</span><span class="o">:</span> <span class="p">{</span> <span class="nx">total</span><span class="o">:</span> <span class="o">-</span><span class="mi">1</span> <span class="p">}</span> <span class="p">}</span>
   <span class="p">],</span>
   <span class="p">{</span> <span class="nx">explain</span><span class="o">:</span> <span class="kc">true</span> <span class="p">}</span>
<span class="p">)</span>
</pre></div>
</div>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">The <code class="docutils literal"><span class="pre">explain</span></code> output is subject to change between releases.</p>
</div>
<div class="admonition seealso">
<p class="first admonition-title">See also</p>
<p class="last"><a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a> method</p>
</div>
</div>
<div class="section" id="aggregate-data-using-external-sort">
<h3>Aggregate Data using External Sort<a class="headerlink" href="#aggregate-data-using-external-sort" title="Permalink to this headline">¶</a></h3>
<p>Aggregation pipeline stages have <a class="reference internal" href="../../core/aggregation-pipeline-limits.html#agg-memory-restrictions"><span class="std std-ref">maximum memory use limit</span></a>. To handle large datasets, set
<code class="docutils literal"><span class="pre">allowDiskUse</span></code> option to <code class="docutils literal"><span class="pre">true</span></code> to enable writing data to
temporary files, as in the following example:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">stocks</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">(</span> <span class="p">[</span>
      <span class="p">{</span> <span class="nx">$project</span> <span class="o">:</span> <span class="p">{</span> <span class="nx">cusip</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">date</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">price</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">0</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$sort</span> <span class="o">:</span> <span class="p">{</span> <span class="nx">cusip</span> <span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">date</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">}</span>
   <span class="p">],</span>
   <span class="p">{</span> <span class="nx">allowDiskUse</span><span class="o">:</span> <span class="kc">true</span> <span class="p">}</span>
<span class="p">)</span>
</pre></div>
</div>
</div>
<p>Starting in MongoDB 4.2, the <a class="reference internal" href="../../tutorial/manage-the-database-profiler.html"><span class="doc">profiler log messages</span></a> and <a class="reference internal" href="../log-messages.html"><span class="doc">diagnostic log
messages</span></a> includes a <code class="docutils literal"><span class="pre">usedDisk</span></code>
indicator if any aggregation stage wrote data to temporary files due
to <a class="reference internal" href="../../core/aggregation-pipeline-limits.html#agg-memory-restrictions"><span class="std std-ref">memory restrictions</span></a>.</p>
<div class="admonition seealso">
<p class="first admonition-title">See also</p>
<p class="last"><a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a></p>
</div>
</div>
<div class="section" id="aggregate-data-specifying-batch-size">
<h3>Aggregate Data Specifying Batch Size<a class="headerlink" href="#aggregate-data-specifying-batch-size" title="Permalink to this headline">¶</a></h3>
<p>To specify an <em>initial</em> batch size, specify the <code class="docutils literal"><span class="pre">batchSize</span></code> in the
<code class="docutils literal"><span class="pre">cursor</span></code> field, as in the following example:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">orders</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">(</span> <span class="p">[</span>
      <span class="p">{</span> <span class="nx">$match</span><span class="o">:</span> <span class="p">{</span> <span class="nx">status</span><span class="o">:</span> <span class="s2">&quot;A&quot;</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$group</span><span class="o">:</span> <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="s2">&quot;$cust_id&quot;</span><span class="p">,</span> <span class="nx">total</span><span class="o">:</span> <span class="p">{</span> <span class="nx">$sum</span><span class="o">:</span> <span class="s2">&quot;$amount&quot;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$sort</span><span class="o">:</span> <span class="p">{</span> <span class="nx">total</span><span class="o">:</span> <span class="o">-</span><span class="mi">1</span> <span class="p">}</span> <span class="p">},</span>
      <span class="p">{</span> <span class="nx">$limit</span><span class="o">:</span> <span class="mi">2</span> <span class="p">}</span>
   <span class="p">],</span>
   <span class="p">{</span> <span class="nx">cursor</span><span class="o">:</span> <span class="p">{</span> <span class="nx">batchSize</span><span class="o">:</span> <span class="mi">0</span> <span class="p">}</span> <span class="p">}</span>
<span class="p">)</span>
</pre></div>
</div>
</div>
<p>The <code class="docutils literal"><span class="pre">{batchSize:</span> <span class="pre">0</span> <span class="pre">}</span></code> document specifies the size of the <em>initial</em>
batch size only. Specify subsequent batch sizes to <a class="reference internal" href="../mongodb-wire-protocol.html#wire-op-get-more"><span class="std std-ref">OP_GET_MORE</span></a> operations as with other MongoDB cursors. A
<code class="docutils literal"><span class="pre">batchSize</span></code> of <code class="docutils literal"><span class="pre">0</span></code> means an empty first batch and is useful if you
want to quickly get back a cursor or failure message, without doing
significant server-side work.</p>
</div>
<div class="section" id="specify-a-collation">
<h3>Specify a Collation<a class="headerlink" href="#specify-a-collation" title="Permalink to this headline">¶</a></h3>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.4.</span></p>
</div>
<p><a class="reference internal" href="../collation.html"><span class="doc">Collation</span></a> allows users to specify
language-specific rules for string comparison, such as rules for
lettercase and accent marks.</p>
<p>A collection <code class="docutils literal"><span class="pre">myColl</span></code> has the following documents:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;café&quot;</span><span class="p">,</span> <span class="nx">status</span><span class="o">:</span> <span class="s2">&quot;A&quot;</span> <span class="p">}</span>
<span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;cafe&quot;</span><span class="p">,</span> <span class="nx">status</span><span class="o">:</span> <span class="s2">&quot;a&quot;</span> <span class="p">}</span>
<span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;cafE&quot;</span><span class="p">,</span> <span class="nx">status</span><span class="o">:</span> <span class="s2">&quot;a&quot;</span> <span class="p">}</span>
</pre></div>
</div>
</div>
<p>The following aggregation operation includes the <a class="reference internal" href="../bson-type-comparison-order.html#collation"><span class="std std-ref">Collation</span></a>
option:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">myColl</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">(</span>
   <span class="p">[</span> <span class="p">{</span> <span class="nx">$match</span><span class="o">:</span> <span class="p">{</span> <span class="nx">status</span><span class="o">:</span> <span class="s2">&quot;A&quot;</span> <span class="p">}</span> <span class="p">},</span> <span class="p">{</span> <span class="nx">$group</span><span class="o">:</span> <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="s2">&quot;$category&quot;</span><span class="p">,</span> <span class="nx">count</span><span class="o">:</span> <span class="p">{</span> <span class="nx">$sum</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">],</span>
   <span class="p">{</span> <span class="nx">collation</span><span class="o">:</span> <span class="p">{</span> <span class="nx">locale</span><span class="o">:</span> <span class="s2">&quot;fr&quot;</span><span class="p">,</span> <span class="nx">strength</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">}</span>
<span class="p">);</span>
</pre></div>
</div>
</div>
<p>For descriptions on the collation fields, see
<a class="reference internal" href="../collation.html#collation-document-fields"><span class="std std-ref">Collation Document</span></a>.</p>
</div>
<div class="section" id="hint-an-index">
<h3>Hint an Index<a class="headerlink" href="#hint-an-index" title="Permalink to this headline">¶</a></h3>
<div class="versionadded">
<p><span class="versionmodified">New in version 3.6.</span></p>
</div>
<p>Create a collection <code class="docutils literal"><span class="pre">foodColl</span></code> with the following documents:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">foodColl</span><span class="p">.</span><span class="nx">insert</span><span class="p">([</span>
   <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;cake&quot;</span><span class="p">,</span> <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;chocolate&quot;</span><span class="p">,</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">10</span> <span class="p">},</span>
   <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;cake&quot;</span><span class="p">,</span> <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;ice cream&quot;</span><span class="p">,</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">25</span> <span class="p">},</span>
   <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;pie&quot;</span><span class="p">,</span> <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;boston cream&quot;</span><span class="p">,</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">20</span> <span class="p">},</span>
   <span class="p">{</span> <span class="nx">_id</span><span class="o">:</span> <span class="mi">4</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;pie&quot;</span><span class="p">,</span> <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;blueberry&quot;</span><span class="p">,</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">15</span> <span class="p">}</span>
<span class="p">])</span>
</pre></div>
</div>
</div>
<p>Create the following indexes:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">foodColl</span><span class="p">.</span><span class="nx">createIndex</span><span class="p">(</span> <span class="p">{</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">type</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">);</span>
<span class="nx">db</span><span class="p">.</span><span class="nx">foodColl</span><span class="p">.</span><span class="nx">createIndex</span><span class="p">(</span> <span class="p">{</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">);</span>
</pre></div>
</div>
</div>
<p>The following aggregation operation includes the <code class="docutils literal"><span class="pre">hint</span></code> option to
force the usage of the specified index:</p>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">foodColl</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">(</span>
   <span class="p">[</span> <span class="p">{</span> <span class="nx">$sort</span><span class="o">:</span> <span class="p">{</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}},</span> <span class="p">{</span> <span class="nx">$match</span><span class="o">:</span> <span class="p">{</span> <span class="nx">category</span><span class="o">:</span> <span class="s2">&quot;cake&quot;</span><span class="p">,</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">10</span>  <span class="p">}</span> <span class="p">},</span> <span class="p">{</span> <span class="nx">$sort</span><span class="o">:</span> <span class="p">{</span> <span class="nx">type</span><span class="o">:</span> <span class="o">-</span><span class="mi">1</span> <span class="p">}</span> <span class="p">}</span> <span class="p">],</span>
   <span class="p">{</span> <span class="nx">hint</span><span class="o">:</span> <span class="p">{</span> <span class="nx">qty</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">category</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">}</span>
<span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="override-default-read-concern">
<h3>Override Default Read Concern<a class="headerlink" href="#override-default-read-concern" title="Permalink to this headline">¶</a></h3>
<p>To override the default read concern level, use the <code class="docutils literal"><span class="pre">readConcern</span></code>
option. The <a class="reference internal" href="getMore.html#dbcmd.getMore" title="getMore"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">getMore</span></code></a> command uses the <code class="docutils literal"><span class="pre">readConcern</span></code> level
specified in the originating <a class="reference internal" href="#dbcmd.aggregate" title="aggregate"><code class="xref mongodb mongodb-dbcommand docutils literal"><span class="pre">aggregate</span></code></a> command.</p>
<p>You cannot use the <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> or the <a class="reference internal" href="../operator/aggregation/merge.html#pipe._S_merge" title="$merge"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$merge</span></code></a> stage
in conjunction with read concern <a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a>. That
is, if you specify <a class="reference internal" href="../read-concern-linearizable.html#readconcern.&quot;linearizable&quot;" title="&quot;linearizable&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;linearizable&quot;</span></code></a> read concern for
<a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a>, you cannot include either
stages in the pipeline.</p>
<p>The following operation on a replica set specifies a <a class="reference internal" href="../read-concern.html"><span class="doc">read concern</span></a> of <a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a> to read the
most recent copy of the data confirmed as having been written to a
majority of the nodes.</p>
<div class="admonition important">
<p class="first admonition-title">Important</p>
<ul class="last">
<li><p class="first">To use <a class="reference internal" href="../glossary.html#term-read-concern"><span class="xref std std-term">read concern</span></a> level of <a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a>, replica
sets must use <a class="reference internal" href="../../core/wiredtiger.html#storage-wiredtiger"><span class="std std-ref">WiredTiger storage engine</span></a>.</p>
<p>You can disable read concern <a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a> for a deployment
with a three-member primary-secondary-arbiter (PSA) architecture;
however, this has implications for change streams (in MongoDB 4.0 and
earlier only) and transactions on sharded clusters. For more information,
see <a class="reference internal" href="../read-concern-majority.html#disable-read-concern-majority"><span class="std std-ref">Disable Read Concern Majority</span></a>.</p>
</li>
<li><p class="first">Starting in MongoDB 4.2, you can specify <a class="reference internal" href="../read-concern.html"><span class="doc">read concern</span></a> level <a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a> for an
aggregation that includes an <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a> stage.</p>
<p>In MongoDB 4.0 and earlier, you cannot include the <a class="reference internal" href="../operator/aggregation/out.html#pipe._S_out" title="$out"><code class="xref mongodb mongodb-pipeline docutils literal"><span class="pre">$out</span></code></a>
stage to use <a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a> read concern for the aggregation.</p>
</li>
<li><p class="first">Regardless of the <a class="reference internal" href="../glossary.html#term-read-concern"><span class="xref std std-term">read concern</span></a> level, the most recent data on a
node may not reflect the most recent version of the data in the system.</p>
</li>
</ul>
</div>
<div class="button-code-block">
<div class="button-row">
<a class="code-button--copy code-button" role="button">
copy</a>
</div>
<div class="copyable-code-block highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">db</span><span class="p">.</span><span class="nx">restaurants</span><span class="p">.</span><span class="nx">aggregate</span><span class="p">(</span>
   <span class="p">[</span> <span class="p">{</span> <span class="nx">$match</span><span class="o">:</span> <span class="p">{</span> <span class="nx">rating</span><span class="o">:</span> <span class="p">{</span> <span class="nx">$lt</span><span class="o">:</span> <span class="mi">5</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">],</span>
   <span class="p">{</span> <span class="nx">readConcern</span><span class="o">:</span> <span class="p">{</span> <span class="nx">level</span><span class="o">:</span> <span class="s2">&quot;majority&quot;</span> <span class="p">}</span> <span class="p">}</span>
<span class="p">)</span>
</pre></div>
</div>
</div>
<p>To ensure that a single thread can read its own writes, use
<a class="reference internal" href="../read-concern-majority.html#readconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-readconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a> read concern and <a class="reference internal" href="../write-concern.html#writeconcern.&quot;majority&quot;" title="&quot;majority&quot;"><code class="xref mongodb mongodb-writeconcern docutils literal"><span class="pre">&quot;majority&quot;</span></code></a>
write concern against the primary of the replica set.</p>
<div class="admonition seealso">
<p class="first admonition-title">See also</p>
<p class="last"><a class="reference internal" href="../method/db.collection.aggregate.html#db.collection.aggregate" title="db.collection.aggregate()"><code class="xref mongodb mongodb-method docutils literal"><span class="pre">db.collection.aggregate()</span></code></a></p>
</div>
</div>
</div>
</div>

                
    <div id="btnv">
      <span class="btn-arrow-left">&larr; &nbsp;</span>
      <a class="btn-prev-text" href="nav-aggregation.html" title="Previous Section: Aggregation Commands"><span>Aggregation Commands</span></a>
      <a class="btn-next-text" href="count.html" title="Next Section: count"><span>count</span></a>
      <span class="btn-arrow-right">&nbsp;&rarr;</span>
    </div>
                  <div class="footer">
                    <div class="copyright">
                      <p>&copy; MongoDB, Inc 2008-present. MongoDB, Mongo, and the leaf logo are registered trademarks of MongoDB, Inc.</p>
                    </div>
                  </div>
              </div></div>
            </div>
        </div>
    </div>
    <div class="right-column">
      <div class="wrapper"> <div id='mongodb-docs-1'>
   <script type='text/javascript'>
      googletag.cmd.push(function() { googletag.display('mongodb-docs-1'); });
   </script>
</div>
            <div class="social">
               <a class="slack-icon" href="https://slackpass.io/mongo-db?jmp=docs" title="https://slackpass.io/mongo-db?jmp=docs"><i class="fab fa-slack" aria-hidden="true"></i></a>
               <a class="twitter-icon" href="https://twitter.com/MongoDB" title="https://twitter.com/MongoDB"><i class="fab fa-twitter-square"></i></a>
               <a class="youtube-icon" href="https://www.youtube.com/user/MongoDB" title="https://www.youtube.com/user/MongoDB"><i class="fab fa-youtube-square"></i></a>
               <a class="facebook-icon" href="https://www.facebook.com/mongodb" title="https://www.facebook.com/mongodb"><i class="fab fa-facebook-square"></i></a>
               <a class="stack-overflow-icon" href="https://stackoverflow.com/tags/mongodb/info" title="https://stackoverflow.com/tags/mongodb/info"><i class="fab fa-stack-overflow" aria-hidden="true"></i></a>
            </div>
        

      </div>
    </div>
    
      <div id="rating-panel"></div>
    
    <div class="clearfix"></div>
  </div>
  

  <script type="text/javascript">
  // Bootstrap array of links that should trigger a full page reload
  window.docsExcludedNav = ['/administration', '/administration/production-checklist', '/administration/indexes-management', '/aggregation', '/applications/geospatial-indexes', '/applications/indexes', '/contributors/getting-started', '/core/2d', '/core/2dsphere', '/core/auditing', '/core/authentication', '/core/authorization', '/core/backups', '/core/read-isolation-consistency-recency', '/core/databases-and-collections', '/core/geohaystack', '/core/index-single', '/core/index-compound', '/core/index-creation', '/core/index-hashed', '/core/index-multikey', '/core/index-partial', '/core/index-sparse', '/core/index-text', '/core/index-ttl', '/core/index-unique', '/core/index-wildcard', '/core/journaling', '/core/kerberos', '/core/map-reduce', '/core/operational-segregation', '/core/query-optimization', '/core/read-preference', '/core/replica-set-architectures', '/core/replica-set-high-availability', '/core/replica-set-members', '/core/replica-set-secondary', '/core/transactions', '/geospatial-queries', '/replication', '/core/sharded-cluster-components', '/core/wiredtiger', '/core/write-operations-atomicity', '/crud', '/indexes', '/installation', '/introduction', '/mongo', '/products/bi-connector', '/reference/command', '/reference/collation', '/text-search', '/tutorial/manage-the-database-profiler', '/core/index-text', '/reference/bson-types', '/reference/configuration-options', '/reference/indexes', '/reference/method', '/reference/operator/aggregation', '/reference/operator/query', '/reference/operator/query-modifier', '/reference/operator/update', '/reference/replication', '/reference/read-concern', '/reference/security', '/reference/sharding', '/reference/write-concern', '/release-notes/2.4', '/release-notes/2.6', '/release-notes/2.8', '/release-notes/3.0', '/release-notes/3.2', '/release-notes/3.4', '/release-notes/3.6', '/release-notes/4.0', '/release-notes/4.2', '/security', '/sharding', '/changeStreams', '/core/zone-sharding', '/core/hashed-sharding', '/core/ranged-sharding', '/storage', '/tutorial/change-sharded-cluster-wiredtiger', '/tutorial/insert-documents', '/tutorial/query-documents', '/tutorial/remove-documents', '/tutorial/update-documents', '/tutorial/enable-authentication', '/tutorial/install-mongodb-on-ubuntu', '/tutorial/install-mongodb-on-windows', '/tutorial/install-mongodb-on-red-hat', '/tutorial/install-mongodb-on-debian', '/tutorial/install-mongodb-on-suse', '/tutorial/install-mongodb-on-amazon', '/tutorial/install-mongodb-enterprise-on-ubuntu', '/tutorial/install-mongodb-enterprise-on-windows', '/tutorial/install-mongodb-enterprise-on-red-hat', '/tutorial/install-mongodb-enterprise-on-debian', '/tutorial/install-mongodb-enterprise-on-suse', '/tutorial/install-mongodb-enterprise-on-amazon', '/tutorial/install-mongodb-on-os-x'];
  </script></body>
</html>